Linuxサーバで目視監視したいときに活躍するのが、watchコマンドです。watchコマンドは、プログラムを定期的に実行し、その結果をコンソール上に表示します。
ここでは、watchコマンドを使ってコマンドを使った目視監視例をいくつか紹介します。
この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。
ソフトウェア | バージョン |
---|---|
CentOS Linux | 7.9.2009 |
目次
watchコマンドの書式とオプション
書式
> watch [options] <command>
オプション
-n:画面を更新する間隔を秒で指定します。デフォルトは2秒間隔となります。
-d:状態に変化があった際に、変化した部分がハイライトされます。
-g:状態に変化があった際に、終了します。
-gオプションは、CentOS 7などの最近のディストリビューションでしか使えないようです。
watchコマンドの使用例
ディレクトリを監視
以下のコマンドでは、5秒おきに「ls /tmp/*.conf」コマンドを実行して、ファイルの作成や削除など、状態に変化があった際にハイライト表示します。
# watch -n 5 -d "ls /tmp/*.conf"
以下のコマンドでは、5秒おきに「ls /tmp/*.conf」コマンドを実行して、ファイルの作成や削除など、状態に変化があった際にwatchコマンドを終了します。
# watch -n 5 -g "ls /tmp/*.conf"
プロセスを監視
以下のコマンドでは、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コマンドを組み合わせて実行すれば、画面が上書きされないので、履歴を見比べることもできます。
あとがき
簡易的に監視するときなどに結構便利です。