watchコマンドでコマンド実行結果を監視する方法



●基本的な使い方

 基本的には、下記のようにコマンドを実行すると、ある間隔(デフォルトは2秒)でそのコマンドの実行結果をコンソール上に出力することができます。
$ watch 連続実行させるコマンド
 watchは実行結果を画面の上から書いていきます。したがって、実行結果の履歴を通して見ることができません。
 一方、下記に示すwhileとsleepを組み合わせて使う方法の場合、実行結果は1つ前の実行結果の下に続くようになり通して見ることができます。
 監視をどのようにしたいかに応じて使い分けるのが良いのではないでしょうか。
 /home以下を監視するには下記のように実行します。
$ watch ls -la /home/
 while true; do <command>; sleep <seconds>; doneを上記に当てはめると下記のようになります。
 while true; do ls -la /home/; sleep 2; doneを上記に当てはめると下記のようになります。
 いずれも停止させるためには、Ctrl + cを押下します。

●オプション

-n:画面を更新する間隔を秒単位で指定します。指定しない場合と2秒間隔で更新されます。
-d:状態変化の際に変化した部分がハイライトされます。
-t:実行結果のヘッダーを非表示にすることが出来ます。
-c:実行コマンドの結果をカラー表示させます。
-e:エラー発生した場合、監視を終了します。(ディストリビューションに依存)
-g:変化が合った場合、監視を終了します。(ディストリビューションに依存)