【watch】Linuxでコマンドを定期実行して監視するコマンド

Linuxでコマンドを定期的に実行して端末に表示するwatchコマンドを紹介します。

watchコマンドの使い方

watchコマンドの書式は以下の通りです。

watch [オプション] コマンド

引数には定期実行で監視するコマンドを指定します。

オプション

-d 更新時に前回と異なる部分をハイライトして表示する
-n 指定した間隔でコマンドを実行する
-t 出力上端のヘッダー情報や空行を表示しない

コマンドを定期実行し監視する

以下は、「ls -l」コマンドを定期実行し監視する例です。

$ watch ls -l

終了するときは、「Ctrl+C」キーを押下します。デフォルトでは2秒間隔でコマンドを実行し出力を更新します。

もしパイプやリダイレクトなどを使用したコマンドを指定したい場合は、クォテーションで囲む必要があります。

$ watch 'ps aux | grep nginx'

更新間隔を指定して実行する

「-n」オプションの後に数値を指定することにより、定期実行の間隔を変更できます。以下は、5秒間隔で実行し出力を更新します。

$ watch -n 5 ls -l

異なる部分をハイライトする

「-d」オプションを指定することにより、前回と異なる部分をハイライトして表示することができます。

$ watch -d ls -l

ハイライトされた部分が次の更新時に同じ結果だった場合は、ハイライトはなくなります。もし実行開始から変更があった部分をすべてハイライトしたい場合は、「-d=cumulative」のとうに指定します。

$ watch -d=cumulative ls -l

ヘッダーの情報を非表示にする

デフォルトでは画面の1行目に、実行間隔、実行コマンド、最新の実行時間を表示しています。これらを非表示にするにはオプション「-t」を指定して実行します。

$ watch -t ls -l

イベント

2017/12/05(火)
Design Thinking Square