RHEL5.4へのswatchインストールの概要

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


参照したURL:
http://d.hatena.ne.jp/MOZZ/comment?date=20080730

ログローテート時に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