Linuxコマンド:コマンドの実行結果を目視監視する(watch)

Linuxサーバで目視監視したいときに活躍するのが、watchコマンドです。watchコマンドは、プログラムを定期的に実行し、その結果をコンソール上に表示します。

ここでは、watchコマンドを使ってコマンドを使った目視監視例をいくつか紹介します。

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

使用例

書式:watch [options] <command>

ディレクトリを監視

ディレクトリ内のファイル作成や削除などを目視監視し、状態に変化があった際にハイライト表示させるには、以下のコマンドを実行します。

watch -n 5 -d "ls /tmp/*.conf"

ディレクトリ内のファイル作成や削除などを目視監視し、状態に変化があった際にwatchコマンドを終了するには以下のコマンドを実行します。

watch -n 5 -g "ls /tmp/*.conf"

使用したオプション:

-n:画面を更新する間隔を秒で指定します。デフォルトは2秒間隔となります。
-d:状態に変化があった際に、変化した部分がハイライトされます。
-g:状態に変化があった際に、終了します。

Memo

-gオプションは、CentOS7などの最近のディストリビューションでしか使えないようです。

プロセスを監視

httpdプロセスの状態を目視監視します。

watch -n 5 "ps -ef | grep httpd | grep -v grep"

watchコマンドの代替案

何らかの事情でwatachコマンドが使えないときは、whileコマンドとsleepコマンドを組み合わせて実行することで、watchコマンドと同じようなことができます。

while true; do <command>; sleep <seconds>; done

また、watchコマンドは更新間隔ごとに画面を上書くので、コマンド実行結果の履歴を見比べることができません。画面を上書かずに追記する形にしたい場合は、上のwhileコマンドとsleepコマンドを組み合わせて実行するやりかたをおすすめします。

まとめ

簡易的に監視するときなどに結構便利です。

スポンサーリンク