・swatchの実行に必要なCPANモジュールのインストール
・swatchのインストール(swatch-3.2.3.tar.gz)
・.swatchrcの作成
http://www.atmarkit.co.jp/flinux/rensai/root04/root04b.html
・swatch起動スクリプトの作成
保存場所 /etc/rc.d/init.d/swatch
・自動起動の設定
# /sbin/chkconfig --add swatch
# /sbin/chkconfig swatch on
# /sbin/chkconfig --list swatch
・ログローテーション時にswatchを再起動するように設定する
例. /etc/logrotate.d/syslogにあるプロセス再起動コマンドの後に以下の行を追加する
/etc/rc.d/init.d/swatch restart
参照したURL:
http://www.marronkun.net/linux/security/swatch_000037.html
なぜswatchを再起動するのか
file1を新規作成
$ touch file1 $ ls -li file1 135466 -rw-rw-r--. 1 tigerii tigerii 0 1月 11 21:25 file1 $ cat > file1 abcde $ ls -li file1 135466 -rw-rw-r--. 1 tigerii tigerii 6 1月 11 21:25 file1
inode番号は135466
file1をコピーしてfile2を作成する。
$ cp file1 file2 $ ls -li file1 file2 135466 -rw-rw-r--. 1 tigerii tigerii 6 1月 11 21:25 file1 135482 -rw-rw-r--. 1 tigerii tigerii 6 1月 11 21:25 file2
file1とfile2のinode番号は異なる。
file1の名前をfile3に変更する。
$ mv file1 file3 $ ls -li file2 file3 135482 -rw-rw-r--. 1 tigerii tigerii 6 1月 11 21:25 file2 135466 -rw-rw-r--. 1 tigerii tigerii 6 1月 11 21:25 file3
file3のinode番号が135466になる!
参考)/dev/nullを使ってファイルを空にする場合は、inode番号は変わらない。
$ cp /dev/null file2 $ ls -li file2 135482 -rw-rw-r--. 1 tigerii tigerii 0 1月 11 21:26 file2
ログローテート時にswatchを再起動しなくても良い方法(2012.6.19追加)
↓↓ログローテの際に、swatchを再起動しなくてよい方法がありました!
http://blog.hagyroom.com/2007/06/27/swatch.html
tailの動作
terminal1 | terminal2 |
---|---|
$ touch a.txt $ tail -f a.txt aaa bbb |
$ cat >> a.txt aaa bbb $rm a.txt $cat >> a.txt aaa bbb |
terminal1 | terminal2 |
---|---|
$ touch a.txt $ tail -f a.txt --follow=name --retry aaa bbb tail: `a.txt' has become inaccessible: No such file or directory aaa bbb |
$ cat >> a.txt aaa bbb $rm a.txt $cat >> a.txt aaa bbb |