unixの役立つTIPSいろいろ
/dev/null をリダイレクト と rm の違い
■ /dev/null をリダイレクト と rm の違い rm はファイルそのものを削除してしまうため、例えばsquidのaccess.logやsendmailの maillogなど、プロセスが開いているファイルサイズが肥大化したときの対処としては適 切ではない。 cat /dev/null > access.log としてやることで、プロセスに影響を与えずにログファイルのファイルサイズを0にでき る。
キャッシュファイルの削除とかにいいかもしれない。
/dev/null へのシンボリックリンク
■ /dev/null へのシンボリックリンク 例えばログが要らない時は # rm access.log の後、 # ln -s /dev/null access.log
Apacheのログ保存をしたいときとしたくないときを変えるときにApacheの再起動とかしなくてよくなる。/dev/nullはげしく使えるなあ。
for文による連続処理
■ for文による連続処理 例えば100個あるファイルの拡張子を全て変換するには、 for i in *.doc do mv $i `echo $i | sed s/doc$/txt/` done カレントディレクトリ内のzipファイルを一気に全部解凍するには、 for i in *.zip do unzip $i done これらはファイルの操作を行うので、ミスが怖いときはコマンド列全体をechoの引数にす れば確認ができる。 for in in *.doc do echo "mv $i `echo $i | sed s/doc$/txt/`" done 例: dvi2ps との連携 for i in *.dvi do dvi2ps $i.tex | lpr done ※〜to〜系のプログラムなら何にでも応用が効く。ファイルにリダイレクトする場 合はsedを挟んでファイル名を整形すると良い。 例: plain2 for i in *.txt do plain2 -tex `echo $i | sed s/txt/tex/` done
for文はぜったいに身につけようっと。
ssh による暗号化通信の手順
■ ssh による暗号化通信の手順 1.クライアントで暗号鍵を生成する。 $ ssh-keygen -d ... Enter passphrase (empty for no passphrase): Enter same passphrase again: ... ~/.ssh に秘密鍵(id_dsa)と公開鍵(id_dsa.pub)の2つの鍵が生成される。 2.サーバーに公開鍵を転送する。 サーバー上のホームディレクトリに .ssh ディレクトリを作成する。このディ レクトリに公開鍵のid_dsa.pubを転送し、renameまたはリダイレクトで authorized_keys という別のファイルに中身を加える。 複数のクライアントから一つのサーバーへログインする場合はクライアントご とに公開鍵が必要になるので、すべて authorized_keys に公開鍵をまとめる 必要がある。 ※ SSH1とSSH2でauthorized_keysが違うはず。その辺も調べる。
いままでputtykeygenでやってた。
tcpdump
■ tcpdump tcpdump では監視の対象となるポートを指定できる。 # tcpdump not src port 23 and not dst port 23 src dst not がある。加えてandで複数指定。またホスト名表示にDNSルックアップを抑止するには、 -n オプションを使う。 # tcpdump -n src port 80 or dst port 80 たとえばDNSルックアップの遅延時間を調べる場合 # tcpdump -n src port 53 or dst port 53 とする。 03:47:26.510713 133.2.103.130.32768 > 133.2.103.5.53: 61366+[|domain] (DF) 03:47:26.512811 133.2.103.5.53 > 133.2.103.130.32768: 61366*[|domain] (DF) 03:47:26.521361 133.2.103.130.32768 > 133.2.103.5.53: 49978+[|domain] (DF) 03:47:26.522912 133.2.103.5.53 > 133.2.103.130.32768: 49978*[|domain] (DF) と出力される。+ が始点。また、これをみるとDNSへの問い合わせは32768から出て、 buturi の 53 ポートへパケットは流れ、応答パケットはbuturiの53からgenovaの 32768へ帰ってきていることがわかる。
こりゃおもしろそう。