概要
- watchは、プログラムを定期的に実行し、出力結果を表示するコマンド
- watchコマンドで目視監視っぽいことができる
-
while true; do <command>; sleep <seconds>; doneとほぼ同じようなことがより手軽にできる
サンプルいくつか
文法
// <command>はsh -cに与えられる
$ watch [options] <command>
5秒おきにls /tmpを実行し、結果を出力する
$ watch -n 5 ls /tmp
dateコマンドの結果を10秒おきに実行して結果を出力し、変化があった場合にハイライトする
$ watch -n 10 -d date
ちなみに変更があった際のハイライトは下の画像みたいな感じになる。dateコマンドの十の位の秒数が、前回の結果から変わったことを示している。
使いそうなオプション
| オプション | 意味 |
|---|---|
| n | インターバル時間(秒)。0.1秒以上の頻度は指定できない。 |
| d | 一つ前の実行結果との差分をハイライトする |
| t | ヘッダ部分のタイトルを表示しない |
| x | コマンドをsh -cの代わりにexecに渡す |
その他雑感
- watchは実行結果を画面上から上書いていくので、実行結果の履歴を通して見ることができない。一方、先述した
whileとsleepを組み合わせて使う方法だと、実行結果は1つ前の実行結果の下に続くので通しで見ることができる - どんな目視監視をしたいかに応じて使い分けるのが良さそう
