unix

read は遅くて速い

パイプの実装とか、readの仕様とか、何がどうやって動いてるのか知っておくといいことがあるなぁ。 遅い原因を調査する、あるいは効率化するために何を計測すればいいのか分かるようになるし。 何よりも面白い!

バイナリデータでも差分を取れる xdelta

xdelta RFC 3284 - The VCDIFF Generic Differencing and Compression Data Formatを実装したツール。 バイナリデータの diff が作れますよ、と。 仕事で GB なデータファイルの差分を取れるものを探してたのでちょっと試してた。 結果としてはあまり芳しく…

ruby-dbi から MS SQLServer に接続する

ruby-dbi を使うときのメモのはずが汎用的な説明になってるメモ。linux から SQLServer に接続するときは、ODBC 経由が一般的なようです。unixODBC と FreeTDS をインストールすれば、とりあえずは OK。こんな感じでつながります。 +---------------------+ …

nagiosのログから情報抽出する(サマリのみ)

nagiostats さんを使う。 http://nagios.sourceforge.net/docs/2_0/nagiostats.html 全体のサマリが出る MRTG形式のログが出る CUI でホストごとのサマリが見たいんだけどな

socks 通信をラップする tsocks

こんな使い方ができるみたいです。 ssh 接続で DynamicForward してる状態で ssh を socks サーバとして コマンドラインプログラムから使うために tsocks を使う、と 知らなかった。tsocks, ssh dynamic port forwarding | RUNELEAF_LOG sshでSOCKSプロキシ -…

パイプで渡したデータを1行づつ次のコマンドに渡したいけど…(xargs 使え、ということ)

うまい方法はなさげ。 とりあえずこうすればできるけど、美しくないなぁ。 $ cat hoge | while read s; do nantoka ${s}; done ふと思い直して man xargs したらちゃんとあった。 $ cat hoge | xargs -J % nantoka % J オプション(replacement) で指定した最…

daemon が SIGHUP で設定ファイルを再読み込みできる理由

UNIX ネットワークプログラミング第2版 Vol.1 より。 特筆すべきことは、デーモンはコントロールターミナルを持たずに実行されるので、カーネルが生成した SIGHUP シグナルを受け取ることができないということである。これを利用して多くのデーモンでは、構…

core を見る

gdb がなければ core の中身を見ることができないと思いこんでました。 思いこみは怖い。 こんなやりとりをしてました。おれはアホです。 アホ> gdb 入れたい x> なんで アホ> core 吐いて死ぬやつがいるのでそれをしらべたい x> はぁ アホ> だから gdb で c…