Linuxサーバーを管理していると、リアルタイムでシステムの状態を把握したい場面が頻繁にありますよね。そこで今回は、手軽にリアルタイム監視ができる便利なコマンド「watch」を徹底解説します!この記事を読み終えるころには、Linuxのサーバー運用がもっと楽しく、もっと効率的になること間違いなしです!
そもそも「watchコマンド」とは?
watchコマンドとは、指定したコマンドを定期的に実行し、その結果をリアルタイムで表示してくれる便利なツールです。サーバーのCPU使用率やメモリの利用状況、ネットワークの状態をリアルタイムで確認したいときに特に重宝します。

基本的な使い方
watchの基本的な文法は以下のようになっています。
watch [オプション] コマンド
例えば、毎秒ごとに日時を表示するなら次のようになります。
watch -n 1 date
オプションの詳細
watchコマンドでよく使われるオプションをいくつか紹介します。
n
オプション: 実行間隔を秒単位で指定。d
オプション: 前回の実行結果との違いを強調表示。t
オプション: ヘッダー(現在時刻など)を表示しない。
実践的な活用例
1. サーバーの負荷状況をリアルタイムで確認
watch -n 1 uptime
このコマンドで1秒ごとに負荷平均を確認できます。突然の負荷上昇をすぐに察知できるので便利ですね。
2. リアルタイムでプロセスを監視
watch -n 2 "ps aux | grep apache"
これでApacheのプロセス状況を2秒ごとにリアルタイムで把握できます。
3. ディスク容量の変化を監視
watch -n 5 df -h
ディスク容量を定期的に確認し、容量不足の予兆をすぐに見つけられます。
4. ネットワークの状態を確認
watch -n 1 netstat -tunap
ネットワークの接続状況やオープンポートをリアルタイムに確認できます。
「-d」オプションで差分を把握する方法
watchコマンドで最も魅力的な機能の一つが「-d」オプションです。直前の出力結果との違いをハイライト表示してくれます。
例えば、
watch -n 1 -d free -m
このようにするとメモリの使用状況が前回の表示との差分を強調表示し、リアルタイムでどの程度変化したかが一目で分かります。
watchコマンドと併用すると効果的なコマンド
vmstat
watch -n 2 vmstat
システムのCPU使用率、メモリ利用状況、IOの状態を詳細に監視できます。
tailコマンドとの併用
ログをリアルタイムで追跡したい場合、
watch -n 1 tail /var/log/syslog
とするとリアルタイムでログを追いかけられます。
watchコマンドの応用:異常検知の自動化
単純にリアルタイムで表示するだけでなく、条件によってアラートを出すスクリプトと組み合わせることもできます。例えば、負荷が特定の数値を超えた場合にメールを送信するスクリプトをwatch経由で監視することで、簡易な異常検知システムが作れます。
watch -n 60 './check_load.sh'
check_load.sh
が異常値を検知するとメール通知を行う仕組みです。
watchの注意点と工夫
watchは非常に便利ですが、短い間隔で重いコマンドを頻繁に実行するとサーバーに負担をかける可能性があります。そのため、状況に合わせて適切な監視間隔を設定することが重要です。通常は1〜10秒程度がおすすめです。
また、必要な時だけwatchを動かすようにしたり、画面共有ツールと組み合わせて複数人でリアルタイム監視したりするのも効率的な運用方法です。

まとめ
watchコマンドはシンプルですが非常に強力で、Linuxサーバーの運用においては欠かせないツールの一つです。うまく使いこなせば、トラブルを未然に防ぐ手助けになるでしょう。
サーバー管理者はもちろん、Linux初心者でも簡単に使い始められるので、ぜひこの機会にwatchコマンドを活用して、より安定したサーバー運用を目指してみてくださいね!