コマンドを定期的に実行し、実行結果を画面に表示したいとき
Watchコマンドを使うととても便利です。
- ディスク容量を画面に表示し続けていたい
- ファイルサイズを画面に表示していたい
- 定期的にコマンドを実行して結果が変わるのを待ちたい
などにとても便利です。
ファイルサイズが変化するのをモニタリングする例。
watch ls -alh
実行結果
Every 2.0s: ls -lh Tue Aug 3 19:07:58 2010 3.4G -rw-r--r-- 1 takuya takuya 0 2010-07-31 21:40 1234, -rw-r--r-- 1 takuya takuya 201K 2010-08-02 19:16 2010-08-02.A.txt -rw-r--r-- 1 takuya takuya 150K 2010-08-02 19:17 2010-08-02.A-1.txt -rw-r--r-- 1 takuya takuya 446K 2010-08-02 19:20 2010-08-02.A-2.txt drwxr-xr-x 2 takuya takuya 4.0K 2010-04-21 20:52 Desktop
前回と変わったところをハイライトする。
ls だと変化したことが分からないので
watch --differences=cumulative ls -alh
たとえばディスク容量を見続けるとか
watch --differences=cumulative df -h
たとえば、プロセスが生きてることを目で見て確認するとか
watch ps aux | grep ruby
等と使えます。
実行を一時間に一度にしたいときは -n オプション
watch -n 3600 sensors #マシンの温度を見る。コマンド
結果
Every 2.0s: sensors Tue Aug 3 19:12:51 2010 coretemp-isa-0000 Adapter: ISA adapter Core 0: +53.0C (high = +76.0C, crit = +100.0C) coretemp-isa-0001 Adapter: ISA adapter Core 1: +44.0C (high = +76.0C, crit = +100.0C)
テストや開発用に便利。
Cronでコマンド実行よりぶっちゃけ便利。
Watchコマンド使った方が手っ取り早いので、開発中は多用している。
でも 差分ハイライトが --differences=cumulative 長くて面倒じゃない?
alias しとこうか。
.bashrc
alias watch='watch --differences=cumulative'
参考
LinuxサーバーHacks 書籍Amazon.co.jp: LinuxサーバHacks