それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

watchコマンド:コマンドを定期実行し結果を淡々と表示するコマンド

コマンドを定期的に実行し、実行結果を画面に表示したいとき

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'