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

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

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

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

動作環境

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

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

使用例

書式:watch [options] <command>

ディレクトリを監視

以下のコマンドでは、5秒おきに「ls /tmp/*.conf」コマンドを実行して、ファイルの作成や削除など、状態に変化があった際にハイライト表示します。

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

以下のコマンドでは、5秒おきに「ls /tmp/*.conf」コマンドを実行して、ファイルの作成や削除など、状態に変化があった際にwatchコマンドを終了します。

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

使用したオプション:

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

Memo

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

プロセスを監視

以下のコマンドでは、5秒おきに「ps -ef | grep httpd | grep -v grep」コマンドを実行しており、httpdプロセスの状態を目視監視できます。

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

watchコマンドの代替案

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

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

また、watchコマンドは更新間隔ごとに画面を上書くので、コマンド実行結果の履歴を見比べることができませんが、上のwhileコマンドとsleepコマンドを組み合わせて実行すれば、画面が上書きされないので、履歴を見比べることもできます。

あとがき

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

記事が役立ったらシェアしてくれるとうれしいです。

あなたにおすすめのコンテンツ