Linux:watchコマンドでプロセスの状況を一定間隔で監視する
目次
スポンサードリンク
Linux上で稼働するWebサイトを運用していると、プロセスの状況がどのように推移しているか目視確認したいことがありますよね。
例えば、ある画面を表示するとプロセスの使用メモリが急上昇する場合など、毎秒、psコマンドを発行してその結果を見たいことがあります。 そういった場合は watch コマンドを使うと毎回キーボードでコマンドを打たなくても、指定した間隔でコマンドの実行結果を確認することができます。
httpdプロセスを指定した間隔で繰り返し確認する方法
watch -n 2 "ps aux | grep httpd | grep -v grep"
- -n オプションでコマンドを実行する間隔を秒数で指定する。最小で0.1秒まで指定が可能。なにも指定しなかった場合は2秒間隔(デフォルト)
- 「ps aux」で実行中のプロセス一覧を表示する。自分以外が実行しているプロセスも含め、全てのプロセスを表示する。
- 「 grep httpd 」でhttpdという文字列を含むプロセスのみを表示する。
- 「grep -v grep」でgrepという文字列を含まないプロセスのみを表示する。これをやらないと上記のgrepコマンドやwatchコマンド自体が結果に含まれてします。
実行結果のサンプル
Every 2.0s: ps aux | grep httpd | grep -v grep
root 85193 0.0 0.3 285924 3264 ? Ss 15:58 0:00 /usr/sbin/httpd -DFOREGROUND
apache 85951 0.0 0.3 300136 2808 ? S 16:02 0:00 /usr/sbin/httpd -DFOREGROUND
apache 85952 0.0 0.7 1357604 6152 ? Sl 16:02 0:01 /usr/sbin/httpd -DFOREGROUND
apache 85953 0.0 0.8 1357740 7380 ? Sl 16:02 0:01 /usr/sbin/httpd -DFOREGROUND
apache 85954 0.0 1.0 1488872 8396 ? Sl 16:02 0:01 /usr/sbin/httpd -DFOREGROUND
apache 86209 0.0 0.5 1357736 4352 ? Sl 16:05 0:01 /usr/sbin/httpd -DFOREGROUND
watch コマンドの停止方法
停止したい場合は、Ctrl+c でwatchコマンドの実行を停止できます。
シェルスクリプトの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。
リンク
最短3時間で覚えるLinuxシェルスクリプト
こちらは、シェルスクリプトの基本的な書き方、デバッグ方法、if, case, while, forなど基本的な制御構文について書かれています。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。
リンク
Search
Recent Posts
- カーネル更新やパッケージのパッチ適用後、OSの再起動が必要か確認するLinuxコマンド(needs-restarting)
- OpenSSHのエラー「bad ownership or modes for chroot directory component」の原因と解消方法
- Apacheの起動状態をチェックして停止してる場合にApacheを起動するシェルスクリプト
- Amazon LinuxのOSバージョンを調べる方法|/etc/redhat-release の代替ファイル
- MYSQLでダンプファイルを取得する際に発生したエラー「Couldn't execute 'SELECT BINLOG_GTID_POS('', '0')': You are not using binary logging (1381)」の原因と対処方法