2011年12月31日土曜日

マザーボードのチップセットとかCPU情報をLinuxで取得する

lshwというユーティリティがあった

aptでインストールできた
参考リンク
PCのハードウェア情報を表示するには

2011年12月25日日曜日

SIerは滅びぬ!何度でも蘇るさ!

受託開発をするSIerがヤバイよ的な話はよく聞く話でSIer内部でそんな話もチラホラと聞くようになりました。
(ヤバイ理由は人月換算とか多重請負とかいろいろ言われてます)
でも結局のところこの先もSIerは生き残るよねっていうのが僕の見解。
もう何十年もこんな感じでやってきたから引くに引けないんですよ。

これは知人から聞いた話なんですが、ある大企業システムのIT部門の人は
本当にそのシステムを使っているユーザーから改善案を聞いて直すということを
しないらしいです。
仕様変更・機能追加はそのIT部門の上司の思いつきらしいですw
当然、普段から使っているユーザーの要望ではないので、どんどん使いにくくなってる
+いらない機能ばかり増えてるみたいですがw

で、こういう話って大企業とかだと結構ある話みたいです。
ユーザーが沢山いるシステムだと一人一人にヒアリングするのが面倒だし、
俺は(IT部門だから)そのシステム使わない。上司が言ったとおりの
仕様で発注出せばいいやーみたいに考えるのでしょう。
他に優秀なパッケージソフトがあっても買いません。
今まで、大手SIerに頼んでたんだから、今更、どこぞの中小企業と取引なんて
したくない。なぜなら稟議を通すときに説明を求められて面倒だからw
で糞システムをアホみたいな価格で買ってくるんです。
IT部門の人は会社の利益向上というよりも自分が面倒な思いをしなければいいやと
思ってるんですね。
自分がシステムを使わないから当事者意識が希薄なんです。
IT部門という独立した部署を持てる大企業で起こりがちな気もします。

酷いときには今期の予算は1000万円だけど発注は500万しかしてなかったなぁ・・・
(予算をある程度余らせるとそれはそれで怒られるらしいw)
と気づいたIT部門の人はSIerとこんな交渉もします。
IT部門 「大手SIerさんこの案件500万から800万に値上げしてもいいすよ」
大手SIer「ヽ(´▽`)ノワーイ喜んで!ではこの案件は800万で見積もりします♪」
なんてこともやってます。

こんな事をよく続けてられるなと最初は思いました。
普通は他社との競争原理が働き淘汰されていくようにも思えます。
でも、大手SIerと大企業、公共団体、銀行ってズブズブの関係だって知ってました?
見渡せば部長クラスの人は元顧客側のお偉いさんだったり、
今、顧客の立場として発注してるのは大手SIerから出向している人だったりw
結局みんな身内でお金を回してるんじゃないかと思うくらいですw

こんな感じで何十年も回してるから、
もう良いやって思ってるんです。
顧客側も今更内製とか顧客がプロジェクトに参加するなんてことはしないでしょう
IT部門の人からすれば自分は使わないのだから丸投げできる大手SIerの方が良いに決まってます。
「面倒だから」・「今までそうやってきたから」を変えるには本当に経営危機とかにならない
限り無理でしょう。

結局こんな感じでSIerは続いていきます。
大手SIerは人を手配し、誰も見ないような品質項目やExcel資料を作るのに必死になっています。
中堅SIerは、そこら辺の人をSEに見立てて大手SIerに売り飛ばすだけです。
プログラマーは何十にも中間搾取されているので雀の涙ほどの給料で働きます。
みな実際はユーザーの利便性をそこなう糞システムだと知らずに日々残業をします。
きっとこの状況はこの先もずっと変わらないんだろうな(;´ー`)

でも結局これってIT業界だけじゃなくてどこの業界も同じようなものじゃないでしょうか?
世の中なんてこんなものですよね

参考リンク
久々のSI業界
日本のIT業界の問題点
笑ってはいけないSIer

2011年12月24日土曜日

携帯開発の実態(笑わないプログラマ)

例の軍曹のデスマーチ話です

前編
後編

2011年12月19日月曜日

freenetをLinux環境にインストール

公式ページからDownloadを選択「Linux etc」をクリックnew_installer_offline_1405.jarをダウンロードして
↓のコマンドでインストール
java -jar new_installer_offline.jar
インストールするディレクトリを聞かれるので適当に答えればOK
run.shが起動とか終了の時に使うシェル
START引数で起動、STOP引数で停止かな

2011年12月4日日曜日

Googleのキーボードショートカット検索が終わってた

前に書いたキーボードショートカットサービスが終了していた
今はAccessible Viewというサービスになってるみたい
操作方法はキーボードショートカット時代と同じ
音が出るようになったみたいだけど・・・

使いたい人はお試しあれ
https://www.google.com/webhp?esrch=Axs

2011年11月6日日曜日

HJSplitって何だ?

ファイルを分割&結合してくれるソフトです
主に海外のダウンロードサイトなどで目にします。

公式サイトはこちら
そこからLinux版Winodws版が選べます

今回はLinux版を使います
公式ページからtarファイルを拾ってきて解凍すればOK
その中にあるhjsplitを蹴れば実行されますXが動いている+GTKが入っていれば多分大丈夫

※まあLinuxならcatでつなげてもいいと思う

2011年11月4日金曜日

FXで使えるチャート

ここにいろいろあった
http://www.fxcm.co.jp/tools/chart.html

その中でも↓が使いやすかったかも
http://www.dailyfx.com/charts/netdaniachart/

2011年10月30日日曜日

iotop日本語man

iotopを最近使ってたから日本語訳にしてみた
結構意訳になってる


IOTOP(1)                                                                    IOTOP(1)




NAME
iotop - シンプルなIOモニター

SYNOPSIS
iotop [OPTIONS]

DESCRIPTION
iotopはLinuxカーネルからI/O使用情報を取得し(カーネル2.6.20以上を必要とします)、
プロセス・スレッド毎にI/O使用状況を表示します。

カーネルのビルドオプションに以下を含める必要があります。
CONFIG_TASK_DELAY_ACCT, CONFIG_TASK_IO_ACCOUNTING, CONFIG_TASKSTATS and CONFIG_VM_EVENT_COUNTERS

iotopはI/Oのプロセス/スレッドごとのI/O帯域を表示間隔毎に表示します。
また、プロセスがI/Oの処理によって待たせれている時間の割合も表示します。
各プロセスについてI/Oの優先度(クラス/レベル)が表示されます。
加えて、表示間隔の間に読み書きされた総I/O帯域は一番上に表示されます。

左矢印、右矢印キーを使うとソート項目を変更できます。rでソート順を逆転できます。
oで--onlyオプションの有効、無効を切り替えられます。(IOを使用しているプロセスだけを表示するかどうか)
pで--processesオプションの有効、無効を切り替えられます。(プロセスのみを表示してスレッドは表示しないかどうか)
aで--accumulatedオプションの有効、無効を切り替えられます。(IOの累積値表示に切り替えるかどうか)
qで終了します。
iでスレッド/プロセスの優先度を変更できます。
その他のキーを押すと最新の情報に更新できます。

OPTIONS
--version
バージョンを表示し終了します。

-h, --help
使用方法を表示し、終了します。

-o, --only
実際にI/Oを使用しているプロセス/スレッドのみを表示します。これはoを押すことで
表示中にも切り替えることができます。

-b, --batch
対話的な表示でなくなります。(バッチモード)これは状態を記録するときに便利です。

-n NUM, --iter=NUM
自動的に終了する時間を指定します。(デフォルトでは自動的に終了しません。)
これはバッチモードで役に立ちます。

-d SEC, --delay=SEC
表示間隔を設定します。(デフォルトは1秒) 1.1秒のような少数も指定可能です。

-p PID, --pid=PID
表示するプロセスIDを指定します。(デフォルトは全て表示します)

-u USER, --user=USER
表示するユーザーIDを指定します。(デフォルトは全て表示します)

-P, --processes
プロセスのみ表示します。通常は全てのスレッドを表示します。

-a, --accumulated
I/O帯域幅の代わりにI/Oの累積値を表示します。
iotopを実行してから、プロセスが使用したI/Oの量を示します。

-k, --kilobytes
人間が読みやすい表記の変わりにキロバイト表示にします。
このオプションはバッチモードの出力をスクリプトが処理するときに役立ちます。
通常は最適な単位を選択して表示しますが、このオプションが指定されると
常にキロバイト表示となります。

-t, --time
各出力行にタイムスタンプを加えます。(このオプションは--batchオプションを含みます)
タイムスタンプは行の先頭に置かれます。

-q, --quiet
ヘッダ行を取り除きます。(このオプションは--batchオプションを含みます)
このオプションはヘッダの非表示のレベルによって最高3回まで指定できます。
-q カラム行は最初に表示されるだけです
-qq カラム行は出力されません
-qqq I/Oの合計値も出力されません

SEE ALSO
ionice(1), top(1), vmstat(1)

AUTHOR
iotop was written by Guillaume Chazarain.

This manual page was started by Paul Wise for the Debian project
and is placed in the public domain.

April 2009 IOTOP(1)

2011年10月11日火曜日

LinuxでrootのGUIウィンドウを開きたいとき

sudoでrootになってからXアプリを起動してもDisplayのオープンに失敗するので
gksuでrootターミナルを開いてからやるとOK

2011年9月25日日曜日

postfixでメールフィルタを設定

1.main.cfに以下を追加
content_filter=filter:dummy

2.master.cfに以下を追加
filter  unix  -       n       n       -       -       pipe
   flags=Rq user=hogeuser argv=/tmp/filter.pl $recipient
※$recipientは受信者が引数に渡される


参考リンク
Postfix キューに入った後のコンテンツフィルタ
Postfix設定パラメータ

2011年8月21日日曜日

Linuxでスキャナを使うには


aptか何かでsaneとxsaneをインストール
sane-find-scannerで検索
/etc/sane.d/mustek_usb.confを編集
以下の行だけ有効化
option max_block_size 1024
usb 0x04b8 0x010a
/dev/usb/scanner0

あとはrootでログインしてxsaneをメニューから選択すればできた
ちなみに試したのはEpsonのGT-8700


参考リンク
http://samidarehetima.blog9.fc2.com/blog-entry-8.html
検索した結果

2011年8月20日土曜日

2011年8月14日日曜日

WindowsでもMplayerを使う

Mplayerはオープンソースのメディアプレイヤー
公式サイトからDownloadと進んで
「MPlayer SVN Windows with SMPlayer GUI (recommended)」をえらんだ

最初に設定したのは以下の通り

General

Media Settingで「Remember Settings for all files」を外した
Screenshotsの場所を変更

※これはファイル毎に再生ポジションを記憶してくれたりする
設定ファイルはC:\Documents and Settings\hoge\.smplayerにある

Interface

Recent filesを20に変更
Instancesタブで一つのウィンドウしか開かないようにした

File types

関連付けする拡張子にチェック

あと注意しなければならないことは
マルチディスプレイだと左のウィンドウに移動したときに
Video→Screenをえらんでディスプレイ先を切り替えること

2011年8月13日土曜日

lighttpdでバーチャルホスト設定

lighttpd.confを少しいじるだけで出来た

以下のように設定した
hogehoge.netのホスト(HTTP_HOST)またはプライベートIPで指定してきたら
/var/wwwを見せる
それ以外なら/var/www2を見せる
という制御にした
server.document-root        = "/var/www2"

 $HTTP["host"] == "hogehoge.net" {
     server.document-root        = "/var/www"
 }
 else $HTTP["host"] == "192.168.0.4" {
     server.document-root        = "/var/www"
 }

今回はドキュメントルート以外は全部同じ設定にしてあるので、conf-enabled/05-auth.confとかも同じ設定になるので注意

2011年8月12日金曜日

sudoku(数独)の日本語man

Linux用のsudokuゲームの日本語manです



NAME

sudoku - 数独ゲーム

SYNOPSIS

(ゲームを始める)
sudoku [options] ... [<filename>]

(問題を作成)
sudoku -g [<num>] [options] ...

(問題を解く)
sudoku -v [options] ...

(難易度を計算)
sudoku -s [options] ...

DESCRIPTION

The sudoku board game is played on a 9x9 grid, divided into rows, columns, and
9 blocks of 3x3 squares. The objective is to fill the empty squares with the
digits 1-9, so that each row, column, and block contains each of the digits 1-9
(and hence, it is not possible for any digit to appear twice in the same row,
column or block).

GAME INTERFACE

数独は、単純なテキスト・インターフェース(curses(3) ライブラリを使用)です。
ゲームを開始すると使用できるキー入力の説明と共に中央に問題が表示されます。
カーソルは矢印キーかviのキーバインドで動かすことが出来ます。
正方形のマスに(最初から数値が入っているマスを除き)対応する数値を
入力します。0か.キーを入力すると消すことが出来ます。

Generating a New Board

新しい問題はnキーを押すことで表示できます。新しい問題はランダムに生成されたものか
すでに用意された問題ファイルから表示されます。
-nコマンドが渡された場合はすでに用意されている問題ファイルからのみ表示します。

Entering a Custom Board

独自の問題を解くことも出来ます。(例えばインターネットや新聞で見つけた問題)
まずcキーを押して問題をクリアし、初期値を入力します。
その後、fキーを押すことで問題を固定できます。
固定した値は変更できなくなります。

Hints

このプログラムでは問題を解くための支援をするヒント機能が存在します。
それは次に入力できるマスの領域をハイライトします。
繰り返しヒントを使用すると入力すべき値まで教えてくれます。

たまにヒントが不可解な場合があります。例えば以下のように
v v v
. . 7 | . . 9 | . . .
9 . 6 | 7 4 . | . 1 5
. . 2 | 5 1 . | . . .
-------+-------+-------
>  6 . 5 | . 7 . | . . 8  <    ><v^の文字で示されるエリアがヒントです。
>  . 7 . | . . . | . 3 .  <    
>  8 . . | . . . | 7 . 6  <
-------+-------+-------
. . . | . 6 7 | 8 . .
7 4 . | . 5 . | 9 6 2
. 6 . | 4 . . | . . .
^ ^ ^

ヒントは「3の数字を試して下さい」と表示しますが、
この3という数字がどのマスに入るかは明白ではありません。

OPTIONS

-c<class>
指定された難易度の問題が作成します。
指定できる難易度は"very easy", "easy", "medium", "hard", "fiendish"です

-d
問題を解くまでの入力方法を示します。必ず-vオプションと共に使用してください。

-f<format>
問題を保存する時の出力形式を指定します。サポートされている形式は以下の通り:
standard デフォルトのフォーマット;省略形std
compact 小さなテキストフォーマット
csv CSV出力, スプレッドシートなどでインポートする場合に適しています。
postscriptps はショートカットです。
html シンプルなHTML出力です。

-g[<num>]
<num>で指定された数だけ問題を作成します。(指定がなければ1問)問題は標準出力に出力されます。

-n
ランダムに問題を作成しません。このオプションを使用する場合問題ファイルを指定する必要があります。

-r
途中でのセーブを認めない制限されたモードで起動します。

-s
指定される問題ファイルの難易度を計算します。-vオプションと共に使用することが出来ます。


-t<filename>
デフォルトで使用するテンプレートファイルの変わりにオプションでしていした<filename>ファイルが使用されます。

-v
問題ファイルを解いた状態で標準出力に出力します。

<filename>
問題ファイル名を指定します。



ENVIRONMENT

このプログラムは環境変数を使用しません。

FILES

/usr/share/sudoku/template
Template file for generating new sudoku boards.

/usr/share/sudoku/precanned
Optional file, containing `precanned' sudoku boards.

FILE FORMATS

/usr/share/sudoku/template
The template file contains a sequence of patterns that are used for generating new sudoku boards. Each pattern is started by a line with a leading
`%' character, and consists of 9 lines of 9 characters. The character `.' represents a square that is initially blank, and the character `*' rep‐
resents a square with a digit that is initially displayed.

Compact text フォーマット

このフォーマットはテンプレートファイルのフォーマットと似ていますが、
ゲーム盤の表現を含むところが違います。
それぞれのゲーム盤(問題)は%を含む文字と共に始まります。%の後には
その問題のタイトルが書かれています。
その後に9x9の文字が書かれています。
"."が空の値、"1-9"までの値がその問題で最初から与えられている値です。
sudokuプログラムはこのフォーマットの問題ファイルを読むことができます。
-fcompactオプションを指定すれば保存時にこのフォーマットで出力されます。

Standard text フォーマット

このフォーマットは小さなテキストフォーマットに似ていますが、
ブロックを区切る文字が付加されています。
sudokuプログラムはこの形式で保存された問題ファイルを読むことが出来ます。
また、-fオプションを指定しない場合はデフォルトでこの形式を使い出力します。

CSVフォーマット

このフォーマットはスプレッドシートにインポートするときに役立ちます。
それは9行のカンマで区切られたファイルです。
それぞれ、ブランクか数字が入っています。
sudokuプログラムはこのファイルを読み込むことが出来ません。
-fcsvオプションを指定した場合に出力できます。
standardフォーマットやcompact textフォーマットとは異なり
各問題を区切る行がないため、実際保存できる問題数は1問だけです。

Postscript フォーマット

このフォーマットは、問題ファイルを印刷する時に役立ちます。
sudokuプログラムはこのフォーマットを読み込むことは出来ません。
-fpostscriptオプションを指定した場合、このフォーマットで出力します。
standardフォーマットやcompact textフォーマットとは異なり複数の問題を
ひとつのファイルに保存できません。

HTML フォーマット

このフォーマットは、問題ファイルを印刷する時に役立ちます。
sudokuプログラムはこのフォーマットを読み込むことは出来ません。
--fhtmlオプションを指定した場合、このフォーマットで出力します。
standardフォーマットやcompact textフォーマットとは異なり複数の問題を
ひとつのファイルに保存できません。

SEE ALSO

There are a large number of websites dedicated to the sudoku puzzle that can be found easily using a search engine. Some of these sites provide
game boards that can be challenging to solve, and others provide strategies for finding moves.

DIAGNOSTICS

There are limited diagnostics available when an error occurs.

COPYRIGHT

This manual page, and all associated files, have been placed into the public domain by Michael Kennett, July 2005. They may be used by anybody for
any purpose whatsoever, however NO WARRANTY, of any sort, applies to this work.

/etc/init.dに作った起動スクリプトのリンク設定とか

起動時、終了時等のランレベルが変更されたときに走るスクリプトは/etc/init.dに
格納するが、rc0.d/~rc6.d/のディレクトリにリンクを張る必要がある
昔は手動でやっていたが、今は決まった書式でコメントを書いておけば自動的にアップデートしてくれるらしい
update-rc.dというコマンドで行える
ヘッダさえちゃんと書けばinsservというコマンドを打つだけで全スクリプトのリンクが張られる
詳しくは/etc/init.d/READMEを見れば分かる



関連記事
init.d/とか各ランレベルごとの起動スクリプトについて
rep2をオンメモリーにして高速化2

2011年8月11日木曜日

KDMの設定をGUIで行う

今まで:kcontrol
これから:systemsettings
だそうです
参照
なのでsystemsettingsをインストールしたらそこから設定してみよう
Advancedタブ→LoginManagerで設定できる

日本語がいいならついでにkde-l10n-jaを入れておくと良いかも

KDMのセッション選択の制御とかの話

現在、Xにログインするときに使用するディスプレイマネージャにはKDMを使用している

このKDMのセッション制御についてメモしておく
・ログイン時にセッションをDefaultを選んでログインする
→.xinitrc .xsessionに書いたデフォルトセッションが開始される
(詳しくはここら辺参照)

・その他のセッションを明示的にえらんでログインする
→.xinitrc .xsessionは無視されてえらんだセッションが開始される


参考リンク
KDMハンドブック
テーマ

LinuxでHDDの使用率を調べるには?

HDDの各フォルダの使用量を調べる方法について調べた
duコマンドで計ってもいいけど
Baobabってコマンドでもいいかも

参考リンク
ハードディスク使用率をグラフィカルに表示するには
ディレクトリやディスクの使用量を調べるには

2011年7月14日木曜日

wineで入れたソフトのアンインストールについて

ここに書いてあった
以下のコマンドで出来るらしい
uninstaller

その他にregeditというコマンドでレジストリも編集できるらしい
まあなにかおかしくなったら~/.wineを削除すればOKだろう
参考リンク
http://linux.ikoinoba.net/index.php?mode=page&aim=wine

2011年7月13日水曜日

オープンソースの音楽再生ソフト「subsonic」を使ってみる

SubsonicはWebベースの音楽再生ソフトでサーバーにある音楽をitunesの様に管理・再生できるソフトみたい
インストールは驚くほど簡単だった
Debian Squeeze

1.Subsonic動作に必要なファイルをインストールしておく
↓あたりをaptとかでインストールしておく(詳しくはこちら
openjdk-6-jre
flac
faad
vorbis-tools
ffmpeg

2.ダウンロードしたSubsonicをインストール
dpkg -i subsonic-x.x.deb

3.ブラウザでアクセスして設定
http://localhost:4040/にアクセス(もしくは違う端末からIPアドレス指定でもOK)して
設定する。
まずは日本語にするにはSetting→General→Languageを日本語にすればOK
あとはadminのパスワードと必要なアカウントの作成、音楽フォルダの指定、必要ならネットワーク設定を行えば使えるようになる

※注
以下の機能はSubsonicプロジェクトに寄付しないと継続して使用できません
  • Android、iPhoneやWindows Phone 7のへのストリームの音楽配信
  • ビデオストリーミング
  • subsonic.orgのDNSサービス
  • Webインターフェイスで広告が表示されない

参考リンク
http://d.hatena.ne.jp/Molokheiya/20110628/p1

関連ソフト
gnump3d
Ampache
AudioGalaxy

2011年7月1日金曜日

2011年6月6日月曜日

シンプルで軽量なブラウザsurf

Debianのsidならパッケージがあったのでこんな感じでリポジトリを設定

-iオプションで画像を無効化、-pでFLASH等のプラグインを無効化、-sでJavaScript無効化とか出来るので
重いサイトを見るときには重宝しそう
ただ、レンダリングはChromeの方が早い気がする


似ている名前でsurfrawというのがあるけどこれはWebから指定した単語の検索結果をブラウザに渡してくれるソフトらしい
こんな感じで書くとgoogleでdebianを検索した結果がブラウザに渡される
surfraw google debian

2011年6月5日日曜日

ヨッシーのクッキー裏技


強いCPUと戦える

2011年5月30日月曜日

2011年5月29日日曜日

変数のスコープは狭い方が良い?

カーゴカルトみたいな感じか
たしかにそうだと思った

分裂勘違い君劇場
中途半端に優秀なプログラマが「正しいプログラミングテクニック」だと妄信しがちな3つポイント

モンロー/ノイマン効果とは

円形に配置した爆発物が爆発すると中央部にエネルギーが集中してどうたらこうたら・・・
魔法少女まどか☆マギカの11話参考とのこと
参考リンク
ほむほむ11話戦闘シーン
モンロー/ノイマン効果(Wikipedia)

2011年5月24日火曜日

top系のコマンドをまとめてみる(システムモニタリングツール)

システムモニタリング

top
標準インストール?の基本的なモニタリングソフト

htop
もっとユーザフレンドリーなUIになって見やすくなったtop

iotop
IOに着目して負荷を見るためのtop

atop
アクティブなプロセスのみを表示、前表示と差分があったものを表示するtop

ネットワークモニタリング

apachetop
apacheのログからアクセスをリアルタイムに解析してくれる
lighttpdのログでも使えた

iftop
インターフェイスごとにトラフィックを計測

nethogs
アプリ毎にトラフィックを測定

dnstop
DNSのトラフィックを表示

jnettop
ホストとポート毎にトラフィックを表示

sntop
接続を検地するtop


参考リンク
http://phpspot.org/blog/archives/2010/12/top.html
http://journal.mycom.co.jp/news/2009/09/07/005/index.html

pam-auth-updateで認証方式の変更

DTIのVPSの認証方式がKerberosになってたからコマンド打って再設定した

/etc/pam.d/common-password
を見るとよいかも

2011年5月22日日曜日

Linuxの面白そうなゲーム

全てaptでインストールできる

sudoku -> コンソールでできる数独
xshogi -> 将棋ゲーム 軽くて良い感じ
kraptor -> シューティングゲーム
ltris -> 軽いテトリス
netris -> コンソール版のテトリス
viruskiller -> シューティングゲーム?(動作せず)
xblast -> ボンバーマンのクローン
flobopuyo -> ぷよぷよのクローン
xfireworks -> デスクトップに花火が出る
xfishtank -> デスクトップが水族館みたいになる
xpenguins -> デスクトップにペンギンが出る
xsol -> ただのソリティア

参考リンク
http://www10.atwiki.jp/gleaning/pages/32.html
http://penguin.tantin.jp/mori/category.html#af0d8275

perlで日付文字を解析するのに便利なモジュール

Date::Parse というらしいとても便利

#!/usr/bin/perl
 use Date::Parse;
 $unix_time=str2time ("May 15 01:19:02","JST");
 print $unix_time;

2011年5月15日日曜日

パイプ処理の進行状況を教えてくれるコマンドpv

パイプビュー というpv コマンドらしい
どうやらpvはcatみたいな効果があるみたい
pv rss.log* | gzip -c > /tmp/hoge.gz

こうやって2つのパイプの間に挟むのも手
cat rss.log* |pv | gzip -c > /tmp/hoge.gz
参考リンク
http://d.hatena.ne.jp/dharry/20110210/1297268423
http://yebo-blog.blogspot.com/2009/02/pipe-viewer.html

2011年5月14日土曜日

WindowsXPの自動起動(オートラン)機能を無効化する

レジストリを以下のようにすればOKらしい
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoDriveTypeAutoRun"=dword:000000b5

先日、友人からもらったUSB見たら6bi8wr29.exeというウィルスがUSBドライブの直下にあったからこれやっといてよかった危ない危ない・・・

参考リンク
http://www.mnet.ne.jp/~angie/kbase/xp-autorun.html
http://yonyon-blog.net/youmei/2008/05/27/cddvd%E3%82%84usb%E3%83%A1%E3%83%A2%E3%83%AA%E3%81%AE%E8%87%AA%E5%8B%95%E5%AE%9F%E8%A1%8C%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/

2011年5月11日水曜日

ハッシュ解析の常套手段レインボーテーブル

レインボーテーブルとはあらかじめ作っておいたハッシュテーブルと平分の対応表を照らし合わせ、平分を得るテクニックらしいです。
チェインと呼ばれる単位に集約されているので、テーブルの容量が少なくてすむ利点があります。

ソフトはここら辺からどうぞ
http://project-rainbowcrack.com/index.htm

参考リンク
http://backslash.ddo.jp/wordpress/index.php/archives/584

2011年5月10日火曜日

シャドウパスワードの有効化、無効化の切り替えコマンド

pwconv, pwunconv, grpconv, grpunconv
パスワード・グループの shadow 化と、通常ファイルへの逆変換

LANの盗聴について

昔、調べたことがあったのでメモ

有線LANの盗聴にはいくつか種類があって調べた限りだと以下の方法がある
以下の方法の殆どを行えるソフトはettercapがあるman ettercapとやるだけで勉強になる
→MAC Floodはdsniffの中にあるmacofを使うと良いかも
  • ARP Spoofing
  • ICMP Redirect
  • DHCP Spoofing
  • Port Stealing
  • MAC Flood

APR Spoofing

偽のARP応答を返すことでARPテーブルを変更し中間者攻撃を行う手法
ARP Spoofingについてはこちらが参考になる

ICMP Redirect

ICMPリダイレクトを使って経路情報を書き換え

DHCP Spoofing

DHCPを使ってIPアドレスを振るときにGWを盗聴できるように変更

Port Stealing

L2スイッチのポート情報を書き換えることでパケットをこちらに流すようにする

MAC Flood

L2スイッチのMACテーブルを溢れさせて馬鹿ハブにして盗聴する荒業

参考リンク
LAN内の盗聴とその予防
スプーフィング
MACアドレス書き換えで通信傍受!
ARPスプーフィングで通信傍受!

X Window Systemでスクリーンショットを取る

以下のコマンドで出来るらしい
対象をウィンドウだけを取るなら以下のコマンド
コマンドを打ってから対象をクリックでOK
xwd -frame -out 001.xwd

全体を取るには以下のコマンド
これは打った瞬間に取られる
xwd -root -out 002.xwd


参考リンク
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/861minsysps.html
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/010prtsc.html

インプットメソッドibusを試す

aptで以下をインストール

ibus
ibus-anthy
ibus-gtk
ibus-qt4
kasumi
im-switch

インストールしたら
im-switch -s ibus
で切り替え
ibus-setup
でセットアップ

dwmだとツールバーが無いので以下のように設定





参考リンク
http://glandium.org/blog/?p=989

Xセッションからログアウトしたときにスクリプトを実行する

ログアウトの制御は使用しているディスプレイマネージャに依存するみたいです。

Gnomeなら/etc/gdm/PostSession/Default
XDMなら/etc/X11/xdm/Xreset
KDEなら/etc/kde4/kdm/Xreset
WDMなら/etc/X11/wdm/Xreset(ディスプレイ毎に設定なら/etc/X11/wdm/Xreset_0等)

らしい

kdmからなら/etc/kde4/kdm/Xreset→/etc/X11/Xreset→/etc/X11/Xreset.d
と呼ばれているのが分かったので/etc/X11/Xreset.dにスクリプトを置けばOKみたい
あと環境変数$USERでログアウト対象のユーザー名を取得できるらしい



参考リンク
http://superuser.com/questions/65460/create-a-logoff-script-task-for-linux
http://haraita9283.blog98.fc2.com/blog-entry-406.html

2011年5月8日日曜日

fork爆弾を試してみる

sleepだけなら大丈夫かな?と思って以下のスクリプトを実行してみた
→結果すぐに応答なしになってkillallも効かない状態に\(^o^)/
電源を切るしかなくなった
#!/bin/bash
while :; do
        $0 &
        sleep 10m
done &

詳しくはWikipedia

xsessionrcのプロセス制御

前回前々回でwhileでループさせた後xsessionで壁紙やらステータスバーを変更してたけど、それだといろいろと不具合があることが分かったので修正する。

修正後のxsessionrcは以下のようになった

#!/bin/bash
#xsetroot -solid DarkSlateBlue
#hsetroot -full /usr/share/lxde/wallpapers/garasunodice.jpg

D_NUM=`echo $DISPLAY  | cut -f 2 -d:`
PIDFILE=~/.xsession_${D_NUM}.pid
for psnum in $(cat $PIDFILE)
do
        cmd=`ps -p $psnum | tail -1 `
        if echo $cmd | grep Xsession > /dev/null ; then
                kill $psnum
        fi
done
rm -f $PIDFILE

while true
        do
        DATE=`date +"%Y/%m/%d %H:%M"`
        LOAD=`loadav.pl`
        xsetroot -name "Load Average:$LOAD   $DATE" || exit
        sleep 30s || exit
done &
echo $! >> $PIDFILE

while true
        do
        /usr/local/bin/random_wallpaper.pl /jitaku/local/pic/Linux_wallpaper/ || exit
        sleep 30m || exit
done &
echo $! >> $PIDFILE

まず不具合の原因はwhileループがXをログオフしても生き続けること
下図参考このように30sの間にログオフ→ログインが行われると2つのプロセスが実行されてしまう
それを防ぐためにwhileのwhileのプロセスを記録しておく
このときディスプレイ番号も記録し他のXセッションも切らないようにする
pstreeでみるとこんな感じ

こうしておけば次にログインするときにWhileプロセスを殺してくれる。whileプロセスが無いので時間が経てば消えるので良しとした
ちなみにこの方法は再起動した時でも前回のプロセス番号をkillしようとするので完全ではない。
たまたま、同じプロセス番号+Xsessionコマンドで実行されていれば間違えてしまう可能性がある

過去記事
Dwmのステータスバーと壁紙を変更してみる
Linuxでランダムに壁紙を変更するスクリプト書いた

Linuxでランダムに壁紙を変更するスクリプト書いた

いろいろソフトとかあるみたいだけどスクリプトでやってみる

#!/usr/bin/perl
use strict;
use warnings;
##################################
# ランダムに壁紙を変更するスクリプト
##################################
my $WALLPAPER_DIR=shift;
##################################

chdir $WALLPAPER_DIR or die $!;
my @pic_lst=(<*.jpg>,<*.png>);
my $random_num=int rand(scalar @pic_lst);
system "hsetroot -full $pic_lst[$random_num]" and die $!;
このスクリプトをrandom_wallpaper.plとして保存した
.xsessionrcに書いておけばOK
while true
        do
        /usr/local/bin/random_wallpaper.pl /jitaku/local/pic/Linux_wallpaper/ || exit
        sleep 30m
done &

参考リンク
ペンギンの杜 〜 Linux ソフト集 〜アミューズメント/壁紙
美女LinuxをUbuntu(GNOME)の壁紙にする

参考記事
xsessionrcのプロセス制御

2011年5月7日土曜日

bashrcに書いておくと便利な行

#キーバインド
set -o #キーバインドをviに
stty stop undef #端末ロックをやめる
bind C-f:menu-complete #Ctrl-fでメニューコンプリート
bind C-l:clear-screen #Ctrl-lで端末のクリア

#エイリアス
alias bc='bc -q' #bc の最初のメッセージがうるさいので
alias mv='mv -i' #お好みでrootのbashrcには必要?
alias rm='rm -i' #お好みでrootのbashrcには必要?

注意点はset -o viの前にbindでキーバインドを設定しても無効になってしまうこと
必ずset -o viした後にbindを書くこと


過去記事
bashでCtrl-S押すと端末がロックされる
bashで端末ロック機能を解除する
bashでTAB補完する(menu-complete)

2011年5月1日日曜日

タスク切り替えソフトを選ぶ

使いやすい+早いと思ったのは
ufsかなぁ
ctclもなかなか良い感じだけど
切替の早さはufsかなぁ・・・



参考リンク
http://d.hatena.ne.jp/ampll/20090602/1243924925

Xmingを試してみる

Xmingはwindowsで使えるXサーバー
ここからダウンロードしてインストール
とりあえず使ってみるにはWindows側で以下のコマンドでXサーバーを起動
Xming.exe -ac -multiwindow -clipboard

Linux側で以下のコマンドを実行(Windows側のIPアドレスが192.168.0.3だった場合)
export DISPLAY="192.168.0.6:0"

あとはXのアプリを起動すればWindows側に現れるはず
本当はこの方法だとセキュリティ的にまずいのでX11転送とかを使う方がいいかも

参考リンク
公式サイト

2011年4月30日土曜日

ddclientでキャッシュが邪魔して更新されない件

どうやらキャッシュを参照して前回と同じIPなら更新しない仕様みたい
更新日が30日以上の間隔が空いてるなら更新するみたいだけど、待ってられないので
こんなスクリプトをcronに登録しておいた
#!/bin/bash
CACHE_FILE="/var/cache/ddclient/ddclient.cache"
NOW_IP=`host hogehoge.net | cut -f 4 -d' '`
echo "now   ip is $NOW_IP"
CACHE_IP=`cat $CACHE_FILE | tail -1 | cut -f 5 -d, | cut -f 2 -d= `
echo "cache ip is $CACHE_IP"

if [ "$NOW_IP" = "$CACHE_IP" ] ; then
        echo "IP check OK"
else
        echo "IP check NG"
        rm $CACHE_FILE
fi


過去記事
ddclientでワーニングが出る問題
ddclientでDynDNSのIPをアップデートしてみようか

nmapでサーバーの生存確認をする

自分の家のサーバー構成は前回話した感じになっている
(DNSを切り替えることでつながる先をスイッチしている)
自宅のサーバーが落ちるときにDynDNSを更新してレンタルサーバーに向くようにしているけど、これが結構失敗したりするので、レンタルサーバー側でも定期的に監視するようにした。
監視は以下の手順で行う

1.まずDNSで名前を引いて自分(レンタルサーバー側)に向いているか自宅に向いているか調べる
→自分に向いていたら問題ないので処理終了
→自宅に向いていたら2へ

2.自宅のサーバーのメールポートにコネクションが張れるか確認
→張れたら問題なく稼動しているので処理終了
→駄目なら自宅鯖が落ちてると判断しDynDNSを更新してDNSを自分に向かせる

以上の処理をcronに登録して1時間置きにやってみる
nmapでスキャンするときには-PNと-sTをつけるのがポイント
-PN → 自宅のルーターはpingに反応しないのでホストの生存確認は不要
-sT → ルーターからNAPT環境だとステルススキャン(-sS)はうまくいかなかった
nmap hogehoge.net -p 25 -v -PN -sT

あとは適当にスクリプトを組む
#!/usr/bin/perl
use strict;
use warnings;

#################################
# LOG
my $LOG="/var/log/hogelog";
#################################


my @result = `nmap hogehoge.net -p 25 -PN -sT`;

if ( join("",@result) =~/25\/tcp\s+open\s+smtp/ ){
        system "logger 'JITAKU MAIL IS LIVE!!'" and die $!;
        logadd (@result);
}
else {
        system "logger 'JITAKU MAIL IS DEAD!!'" and die $!;
        my @ddc=`ddclient -verbose -ip 123.123.123.123`;
        logadd (@ddc);
}


sub logadd {
        my @data=@_;
        open (WR,">>$LOG") or die $!;
        print WR @data;
        close WR;
}

参考リンク
nmap日本語man

2011年4月25日月曜日

DTIのVPSにPukiWikiをインストール

必要なのはphp5オンリーなので楽
  1. ダウンロード
  2. 公式サイトからダウンロード 今回は「pukiwiki-1.4.7_notb_utf8.tar.gz」を選択 こちらは以下のコマンドで展開すればパーミッションの設定を省けるので良い
    tar xvzpf pukiwiki-1.4.7_notb_utf8.tar.gz
  3. インストール
  4. 基本的には ここ に書いてある通りやればOK md5値は以下のようにして算出できる
    echo -n 'pass' | md5sum 
    この値を設定すればOK 上記例だとこんな感じ
    $adminpass = '{x-php-md5}1a1dc91c907325c69271ddf0c944bc72'
  5. 個別設定
  6. その他個人の設定はお好みで
    アップロードサイズの変更
    vi plugin/attach.inc.php
    ここを参考にして アップロードサイズ上限を16MBに変更した(19行目付近)
     // Max file size for upload on script of PukiWikiX_FILESIZE
     define('PLUGIN_ATTACH_MAX_FILESIZE', (16 * 1024 * 1024)); // default: 1MB
     
    ※ただしphp.iniの制限に引っかかっていたら意味ないので見直すこと→詳しくはこちら

    はてなマークを消す方法
    以下のようにnowikinameを1に変更する
      $nowikiname = 1;
     
その他
ユーザ制御・アクセス制御
QAユーザー認証
セキュリティQA

2011年4月18日月曜日

よく使うCGIスクリプト

無料で使えてとても助かってる

フォトアルバム
pipipiga
UTF-8用のファイルとか用意していてくれる
http://popilol.lolipop.jp/NiconicoPHP/

Fuploader
FLASHで出来てる アップローダ
100Mまでアップロード可能
http://www.yumemaboroshi.net/cgi4905/

UTF-8+LFへの変換は
nkf -w8 -Lu ファイル名
でOK

wikiはPukiWikiが設置が簡単で良いと思う

2011年4月17日日曜日

lighttpdでアクセス制御

こんな感じで指定すると
/upload配下以外はユーザー認証が必要
     $HTTP["url"] !~ "^/upload" {
     auth.require                 = (
                   "" =>
                                    (
                    "method"  => "basic",
                    "realm"   => "wolzone",
                    "require" => "valid-user"
                                      )

                                  )
  }

参考リンク
lighttpdの記述方法
lighttpdのmod_auth使用方法

2011年4月12日火曜日

ターミナルが256色をサポートしているかテストするには?

http://vimwiki.net/?tips%2F70
↑の256colors2.plっていうスクリプトを動かせばよいらしい

2011年4月11日月曜日

bug.nを試してみた

前回Dwmにはまったので
Windowsでも出来ないか探してみたらあった
bug.nというらしい

使い方はLinuxの時とほぼ同じ
※(Winは左Windowsキー)

アクティブウィンドウの切り替え
Win+↑
Win+↓

ウィンドウのリサイズ
Win+←
Win+→

ウィンドウのクローズ
Win+c

分割の縦横切り替え
Win+Ctrl+Tab

タイトルバーの表示非表示
Win+Shift+d

ウィンドウの入れ替え
Win+Shift+Enter

マスターウィンドウの左右切り替え
Win+Ctrl+Enter

よく分からないけどレイアウトの変更
Win+Ctrl+←
Win+Ctrl+→


タスクバーの表示非表示
Win+Space

bug.nの終了
Win+Shift+q

参考リンク
http://sourceforge.jp/projects/tilingwm/wiki/FrontPage

Linuxで使える軽い画像ビューワ

使いやすくて軽い画像ビューワー

xzgv

というらしい
画像フォルダで
xzgv *
で起動して

shift-z ファイル一覧表示
z Windowsにフィット
Space 次の画像へ
b 前の画像へ
矢印キー 画像を任意の方向へスクロール
s 画像をズームイン
S 画像をズームアウト

mirage

基本はマウスで出来る
F2で画像をリネームできるのがポイント

Dwmのステータスバーと壁紙を変更してみる

デフォルトのステータスバーはあまりにそっけないので変更してみた
下記参考リンクを参照すれば分かると思うけど
Dwmの上のバーの右上はxsetroot -nameで示される名前を表示しているので
~/.xsessionrcにこんな感じのスクリプトを書いてやる
※.xsessionrcはXのセッション開始時に読み込まれる詳しくは/etc/X11/Xsession参照

~/.xsessionrc
#!/bin/bash
xsetroot -solid DarkSlateBlue
hsetroot -full /usr/share/lxde/wallpapers/block.jpg
while true
        do
        DATE=`date +"%Y/%m/%d %H:%M"`
        xsetroot -name "$DATE" || exit
        sleep 30s
done &

xsetroot は背景色の設定(ここでは下の行で壁紙を設定してるから意味無いけど・・・)
hsetroot が壁紙の設定hsetroot をインストールする必要はある

参考リンク
ステータスバーの変更について

参考記事
xsessionrcのプロセス制御

Debianのデスクトップ環境をDwmに変更してみた

軽量と言われるLXDEだけどやはり10年前のノートPCだと重いと感じてきたので変更する
変更するのはウィンドウマネージャのDwm

インストールはaptとかでさくっとできるはず
デフォルトのMod1キーはAltキーなのでいつもAltキーが必要です
起動して左上に表示されている1~9の数字は仮想デスクトップでここではタグと呼びます
基本操作は以下のとおり

uxtermの起動
Alt+Shift+Return

ウィンドウ間のフォーカスを切り替え
Alt+j
Alt+k

ウィンドウのサイズ変更
Alt+h
Alt+l

フォーカスされているウィンドウを閉じる
Alt+Shift+c

6番目のタグへ移動
Alt+6

全てのタグを選択(全ウィンドウが表示されます)
Alt+0

現在フォーカスされているウィンドウを4番目のタグへ移動
Alt+Shift+4

ウィンドウの入れ替え
Alt+Return

前回選択してたタグへ移動
Alt+Tab

上のバーの表示/非表示切り替え
Alt+b

ウィンドウをタイル表示(重ならないように配置)
Alt+t

フローティングレイアウト表示へ(重なって表示)
Alt+f
※Alt押しながらマウスで移動できます

常に最大化表示(ひとつのウィンドウが最大化表示)
Alt+m

Dwmを終了
Alt+Shift+q

その他詳しいことは
man dwm

ステータスバーを変えるにはこちら

参考リンク
http://sourceforge.jp/projects/tilingwm/wiki/FrontPage

2011年4月3日日曜日

コンソールの表示行を変更する

stty rows 56
こんな感じで打てば
表示される行数を変更できる

ただ
どうやって起動時に設定するかが課題


参考リンク
sttyのほかの使い方
起動時に有効にする方法?

2011年4月2日土曜日

こことかここに書いてあるけど
debian-volatileはsqueezeになってから無くなったらしい

 deb http://ftp.debian.org/debian squeeze-updates main
にすればいいみたい

DebianにOperaをインストール

このとおりやれば出来た

/etc/apt/sources.listにリポジトリを追加
deb http://deb.opera.com/opera squeeze non-free

以下のコマンドを実行
aptitude update
wget -O - http://deb.opera.com/archive.key | apt-key add -
aptitude update
aptitude install opera


apt-keyについては
以下を参照
基本的にはapt-key updateでいいはず
http://debian.fam.cx/index.php?AptGet#secapt

2011年3月27日日曜日

一定時間だけログイン可能なユーザーを作った

sshのログインは基本的には鍵認証にしているのだが、
出先などでどうしてもログインしたい場合鍵が無くて困ることがあるので、一定時間だけパスワード認証できるユーザーを作った。

仕組みは以下のとおり

1.SUIDのセットされたperlスクリプトで実行するコマンドはusermod --lockコマンド →suidperlについて
2.アンロックされる
3.sshのパスワード認証によってログインする ※1
4.cronにusermod --unlockを仕込んでおく

※1 特定のユーザーのみパスワード認証を許可する
hogeuserが今回の対象とする場合
Match User hogeuser
      PasswordAuthentication yes
      AllowTcpForwarding no



参考リンク
http://d.hatena.ne.jp/isseium/20100923/1285225757

suidperlを使ってSUIDがセットされたperlスクリプトを動かす

Debianにて
perl-suidをインストール

シェバンを以下にして
#!/usr/bin/suidperl

sbinを動かすなら
PATHの設定も忘れずに・・・
$ENV{PATH}="/usr/sbin/";


というかsuidperlをインストールするくらいならsudoとか使った方がいいのかなぁ・・・

参考リンク
http://d.hatena.ne.jp/hogem/20080227/1204125414

sshのポートフォワード(ポート転送)を禁止する

AllowTcpForwardingをnoに設定すればOKらしい

参考リンク
http://kamae-norihiro.blogspot.com/2010/11/ssh.html

2011年3月22日火曜日

rsyncのWindows版 cwRsyncを試す

公式サイトからリンクを辿ってcwRsync_4.0.4_Installer.zip
をダウンロード&インストール今回は最小構成でインストール
Secure Channel Wrapperは入れなかった

PATHに"C:\Program Files\cwRsync\bin"を追加
あとはrsyncコマンドがつかえるので使用する今回はネットワークドライブからローカルへ同期してみた

例)Nドライブ→Cドライブのtestフォルダを同期
rsync -av --delete /cygdrive/n/backup/Firefox/ /cygdrive/c/test/
※心配なら-nオプションを付けて挙動を確認すると良いかも

参考リンク
http://satospo.sakura.ne.jp/blog_archives/tech/tool/cwrsync.html

2011年3月20日日曜日

ブログランキングサイトまとめ

TopHatenar
国内のサイトで比較できるので分かりやすい
グラフとかも出て自分の順位が把握しやすい
登録までに1日かかる
このブログの結果

BlogChart
レーダーチャートで表示してくれる
分かりやすいLv表示
このブログの結果

ウェブク
ドメインの価値を表示してくれる
表示単位はドメイン
このブログの結果

ブログ戦闘力チェッカー
ブログを戦闘力で例えてくれる
ドラゴンボールが好きな人は分かりやすい?
TopHatenarのデータを使っているのでTopHatenarへの登録が必要
このブログの結果

過去の記事
あなたのドメインの価値を教えてくれるサイト
BlogChartってサイトでこのBlogのレベルを測定してみる

2011年3月14日月曜日

Debian squeezeにしたらコンソールの解像度が変わった

事象は/etc/default/grubのGRUB_GFXMODEを変更しても
GRUB2の選択画面はその解像度になるがブート後のコンソール画面が狂ってしまうというもの
こんな単語でググったらいろいろ見つかった
こちらの情報を参考に設定してみた

1./etc/default/grubを編集
GRUB_GFXMODE=1024x768
というように設定

2./etc/grub.d/00_headerを編集
39行目あたりにある
if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=640x480 ; fi
の下に以下の行を追記
GRUB_GFXPAYLOAD="${GRUB_GFXMODE}"
127行目あたりの
set gfxmode=${GRUB_GFXMODE}
の下に
set gfxpayload=${GRUB_GFXPAYLOAD}
を追記

3.update-grub
update-grubする

その他
なんでもgfxtermとか言うらしい・・・詳しいことはよく分からない

参考リンク
https://forums.ubuntulinux.jp/viewtopic.php?pid=44077
http://linux.derkeiler.com/Mailing-Lists/Debian/2010-01/msg01695.html

2011年3月7日月曜日

bashでTAB補完する(menu-complete)

↓で出来るらしいスゴイ
今までzshじゃなきゃできないと思ってた
bind TAB:menu-complete

参考リンク
http://debian.fam.cx/index.php?Japanese#ped4bcbd

2011年2月27日日曜日

トルネコの大冒険(SFC)のチートコード


改造コードは以下

満腹度固定
7E0DE573

HP減らない
7E0BB7FF
7E0BB800

HPの最大値MAX
7E0BCBFF
7E0BCC00

力の最大値MAX
7E0DDF63

力最大
7E0DE063

2011年2月25日金曜日

cronの各処理の実行時間を測定してみた

なんかcron.dailyの実行がやけに重いなーとおもったので各スクリプトのどの処理が重いか調べてみた

1.timeプログラムのインストール
まずtimeプログラムが必要ですbashからなら普通に打てるのですがbinに入っているものじゃないとエラーになったのでインストール
debianならtimeパッケージをインストールすれば/usr/bin/timeが出来ました

2.実行時間測定スクリプトの作成
次に/tmpに以下のスクリプトを置き

time.pl
#!/usr/bin/perl
use strict;
use warnings;
use feature qw(say);
use Time::HiRes;

my $runpg=shift;
say "### $runpg START ### ",Time::HiRes::time;
system "/usr/bin/time $runpg" and die $!;
say "### $runpg END   ### ",Time::HiRes::time;

3.anacrontabの編集
/etc/anacrontabを編集(/etc/crontabの人はそちらを)
#  1   5   cron.daily   nice run-parts -v /etc/cron.daily
  1   5   cron.daily   nice run-parts --list /etc/cron.daily | xargs -i /tmp/time.pl {}
ポイントはrun-partsを--listにして実行ファイル一覧を出力させてそれを引数として実行時間を計るプログラムに渡す

2011年2月6日日曜日

tinyhoneypotを使ってみる

aptかなんかでインストールコマンドは→thpot

thpotはxinetdかinetdを通してでも起動できます
接続とセッションを通しての命令は全てログに記録されます
以下のどれかの引数を与えてサービスを起動します
shell, ftp, http, mssql, smtp, pop3 ,ssh

ドキュメントは以下
/usr/share/doc/tinyhoneypot

2011年1月22日土曜日

ctagsを使ってみる

タグファイル(tags)を作ればCtrl+]で飛べる

使い方は
ctags --language-force=perl hoge.pl
こうすれば同じ場所にtagsファイルが作られる

基本的には拡張子で判断してくれるらしいから
--language-forceは不要かも
対応言語は以下のコマンドで出力できる
ctags --list-languages

ちなみにcscopeというC言語専用だけど高機能な解析ツールもあるらしい・・・

参考リンク
http://hp.vector.co.jp/authors/VA025040/ctags/ctags_j.html

Linuxで使える(割と)高機能なエディタ

普段はgvimを使ってるけど長い行を開いたりすると重いので
Leafpad以上でgvim以下のエディタを探してたら
Editraというエディタを発見

スクリーンショットはこちら

特徴は
・マルチプラットフォーム(Windows,Linux,MacOS)
・60以上のプログラミング言語対応のシンタックスハイライト
・タブで使える
・日本語化されている
・軽い
・viモード搭載(環境設定→ドキュメント→コードタブ→「viエミュレーションを有効にする」にチェック

2011年1月17日月曜日

radikoを聞くperlスクリプト書いた

ポイントはforkして指定した時間で落とすこと


#!/usr/bin/perl
################################################
# radiko を聞くスクリプト
# 引数で制御する
#
# ヘルプを表示するにはh
# radiko.pl -h
################################################
use strict;
use warnings;
use Getopt::Std;

my %opt;
getopts("hc:f:t:",\%opt);

if (exists $opt{h}){
print << "HELP";
usage: radiko.pl [-h] [-c channel] [-f outfile] [-t playtime]
-h
 print this message

-c channel
 select play channel
 default: LFR
 * FMT  TOKYO FM
 * FMJ  J-WAVE
 * LFR  nippon housou
 * TBS  TBS radio

-f outfile
 default: /tmp/channel.flv

-t playtime
 default: 1 hour
HELP
exit;
}

my $CHANNEL;
if (exists $opt{c}){
 $CHANNEL=$opt{c};
}
else {
 $CHANNEL="LFR";
}

my $OUTFILE;
if (exists $opt{f}){
 $OUTFILE=$opt{f};
}
else{
 $OUTFILE="/tmp/$CHANNEL.flv";
}

my $PLAYTIME;
if (exists $opt{t}){
 $PLAYTIME=$opt{t} * 60 * 60;
}
else{
 $PLAYTIME= 1 * 60 * 60;
}

unlink $OUTFILE if -e $OUTFILE;

my $com = << "CMD";
rtmpdump -v -e -s 'http://radiko.jp/player/swf/player_2.0.1.00.swf' \\
-r 'rtmpe://radiko.smartstream.ne.jp/$CHANNEL/_defInst_' \\
--playpath 'simul-stream?ucid=1dbab2acb98174787146465a40ba9eba' \\
-p 'http://radiko.jp/player/player.html' \\
-f 'WIN 10,1,102,64' \\
-o $OUTFILE
CMD

print "${com}\nplaytime=$PLAYTIME\n";

my $pid=fork;
die $! unless defined $pid;
print $pid;

if ($pid){
 sleep $PLAYTIME;
 kill 9,$pid;
}
else{
 exec "$com";
}

2011年1月16日日曜日

デビルメイクライ3攻略リンク集

丁寧な攻略チャートがある
http://dmc-labo.secret.jp/DMC-Labo.html

武器アクション

スタイルアクション

http://www.geocities.jp/no0sloter/devil/index.html

MISSION 13のパズル解答

スペシャルエディションの裏技
 タイトル画面でL1L2R1R2を押したまま十字キー上と左を押しながら左スティックを右下に入れる

バジールのコシュチューム一覧
・普通のバジール
・上半身軽装のバジール
・魔人化無制限のバジール(幻影剣は減る)
・ネロアンジェロに返信できるバジール
・ネロアンジェロ無制限のバジール(幻影剣も無制限)

iptablesまとめ

よく忘れるのでメモ

ルールの表示

例)natテーブルのルールを表示
因みにfilterテーブルなら省略可
iptables -t nat -L

ルールの追加

例)80番ポートへのアクセスを遮断
iptables -A OUTPUT -p tcp --dport 80 -j DROP

ルールの削除

iptables -D INPUT 3

パケット転送

80番ポートのアドレスを192.168.0.4:4000へ転送
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.0.4:4000

参考リンク
iptablesで設定したルールを再起動後も反映したい
iptablesによるフィルタ設定

任意のIPを作って送れるソフト

sendip

debianならリポジトリにある

例)memo.txtの内容をtcpで送る
sendip -d memo.txt -p ipv4 -p tcp 192.168.0.3

参考リンク
http://masy.families.jp/diary/?200010c

2011年1月15日土曜日

rtmpdump試してみた

NHKオンデマンドに挑戦

1.URLを解析
fms0000.nod.ipcasting.jp

2.hostsを変更
今回は192.168.0.4にrtmpsuckを走らせておく
192.168.0.4     fms0000.nod.ipcasting.jp

3.でダウンロード
出来るはずだったが、なんか出来なかったOTZ

因みにこんな方法もあるLinuxならiptablesで転送する
hogeuserをすべてlocalhostへ飛ばす例
iptables -t nat -A OUTPUT -p tcp --dport 1935 -m owner \! --uid-owner hogeuser -j REDIRECT

iptables -t nat -n -L で確認
iptables -t nat -D OUTPUT 1 で削除
参考リンク
http://h.hatena.ne.jp/syouhi/9259273302189983422



気を取り直してradiko録音これはrtmpsuckで一発OK

rtmpdumpならこうかな
#!/bin/bash
rtmpdump -v -e -s 'http://radiko.jp/player/swf/player_2.0.1.00.swf' \
-r 'rtmpe://radiko.smartstream.ne.jp/FMJ/_defInst_' \
--playpath 'simul-stream?ucid=1dbab2acb98174787146465a40ba9eba' \
-p 'http://radiko.jp/player/player.html' \
-f 'WIN 10,1,102,64' \
-o FMJ
FMJの部分を変更すれば他の曲にもなる
FMT・・・TOKYO FM
FMJ・・・J-WAVE
LFR・・・ニッポン放送
TBS・・・TBSラジオ

2011年1月1日土曜日

tmuxを試してみた

tmuxの考え方

セッション・・・複数のウィンドウを持つ固まり
ウィンドウ・・・複数のペインを持つ1画面
ペイン・・・いわゆる操作できる端末

プレフィックスキー

全てプレフィックスキー(デフォルトはC-b)を押した後に入力する

※ $で始まるものはコマンド操作
それ以外はプレフィックスキー後に入力する

セッション操作


hogesessionというセッション名で作成
$ tmux new -s hogesession

セッション選択
:choose-session

セッション一覧を表示
$ tmux ls

hogeセッションにアタッチ
$ tmux a -t hoge

ウィンドウ操作

windowのリネーム
,
※:set-window-option automatic-rename onにするとデフォルトになる

新しいwindowの作成
c

windowの数字選択指定
0~9

windowの数字を変更
.

ウィンドウを8番へ移動
move-window -t 8

ウィンドウ選択
:choose-window

ウィンドウの入れ替え(1と入れ替える)
swap-window -t 1

ペインpane操作


ペインの入れ替え
{
}

pane番号表示
q

レイアウト変更
SPACE

上下左右サイズ変更
+
-
<
>

ペインの入力同期 on/off
:set-window-option synchronize-panes on
:set-window-option synchronize-panes off

ペインを:1ウィンドウから一枚もらってくる
:join-pane -s :1

ペインを:1ウィンドウに移す
:join-pane -dt :1
※:1.3という指定にすればペイン番号3指定

その他操作


コピーバッファの選択
=

コピーバッファを一覧を表示
lsb

コピーバッファの1番をペースト
paste-buffer -b 1

時計表示
t

screenと比べて

  • 画面分割の制御が楽(上下左右のリサイズが楽)
  • 画面表示が崩れない気がする
  • 軽い気がする
  • screenに比べて設定ファイルが分かりやすい気がする 
  • ウィンドウの中に画面分割のペインが紐付いているので管理が楽(分割された画面で画面が変わってしまうこちらはウィンドウの分割状態をそのまま保持できるため)
  • クラサバ志向なので他人がすでにアタッチしているセッションに参加できる(2人で同じ端末をみれる何気にすごい)
  • コピーバッファが何個も持てる


自分の設定

#key
bind s split-window -v
bind v split-window -h
bind j select-pane -D
bind k select-pane -U
bind h select-pane -L
bind l select-pane -R
bind -r < resize-pane -L 1
bind -r > resize-pane -R 1
bind -r - resize-pane -D 1
bind -r + resize-pane -U 1
bind : command-prompt
bind C-i select-pane -t :.+
bind Escape copy-mode
setw -g mode-keys vi
set -g prefix C-a
bind C-a send-prefix

#option
set -g display-time 6000
set -g status-interval 30
set -g mouse-select-pane on

#status line
set -g status-right "#(uptime|cut -d, -f 3 | cut -d: -f 2) %Y/%m/%d (%a) %p %I:%M"
setw -g window-status-format "#I:#W"
setw -g window-status-current-format "#I:#W_#P"
set -g status-bg black
set -g status-fg cyan
set -g status-left-fg black
set -g status-left-bg magenta
set -g status-right-fg black
set -g status-right-bg green
set-window-option -g window-status-current-attr bright,reverse
set-window-option -g window-status-current-bg cyan
set-window-option -g window-status-current-fg black

#window
new -s def -n rss_log "tail.pl /var/log/rss.log"
splitw -h 'cd /var/log ; tailf allevent & tailf samba/log.nmbd &tailf samba/log.smbd & tailf lighttpd/access.log  '
neww


参考リンク

日本語man
WikiNote

Bloogerのドラフト版ダッシュボード

http://draft.blogger.com/home