[Linux] watch コマンドで定期的にコマンドを実行する



watch コマンドとは

定期的にコマンドを実行するコマンド。
crontabの実行結果がシェルに出る点がcronとは異なる。

watchコマンドの使い方

$ watch -n 秒数 定期的に実行したいコマンド

例1: apacheのログを監視する。

CGIを作成しながら、エラーログを監視する。

$ watch -n 5 “tail error_log”

※ tail -f で同じようなことができる。

例2: ネットワークを監視する。

192.168.0.2 からの接続を監視する例。

$ watch -n 5 “netstat -an | grep 192.168.0.2”

watchコマンド相当のシェルスクリプト

手元のFreeBSDにはwatchコマンドはインストールされていなかったので、同等のシェルスクリプトを書いた。

 #!/bin/sh
 
 while true
 do
         eval $1
         sleep 5
 done

使い方

$ watch.sh “tail error_log”

参考文献

詳解 シェルスクリプト UNIXの絵本 UNIXシェルスクリプトハンドブック (Technical handbook series (001))

Comments are closed.