Categories: linux

Linuxコマンド『watch』の使い方完全ガイド|一定間隔でコマンドを自動実行する方法

Linuxを使っていると、あるコマンドの実行結果を定期的に監視したい場面に出くわすことがあります。たとえば、サーバーのCPU使用率やディスクの空き容量、あるプロセスの状態などをリアルタイムで確認したい場合に便利なのが「watch」コマンドです。このコマンドは、指定したコマンドを一定間隔で繰り返し実行し、その出力結果をターミナル上に表示し続けてくれます。この記事では、watchコマンドの基本的な使い方から、よく使うオプション、応用的な活用例まで、実際の例を交えてわかりやすく解説していきます。


watchコマンドとは?

watchコマンドは、LinuxやUnix系のOSで使用される標準的なユーティリティの1つです。主に、あるコマンドを定期的に実行して、その出力をリアルタイムで監視するために使われます。

コマンドの書式はとてもシンプルです。

watch [オプション] コマンド

たとえば、現在の日時を2秒ごとに表示させたい場合は次のように実行します。

watch date

このコマンドを実行すると、画面が2秒ごとに更新されて現在の時刻が表示され続けます。


デフォルトの挙動と更新間隔の変更

デフォルトでは、watch2秒間隔 で指定したコマンドを繰り返します。しかし、状況に応じてこの間隔を変更することも可能です。

-nオプションで間隔を指定

更新間隔を変更するには -n オプションを使います。たとえば、5秒ごとにdf -hコマンドを実行してディスク使用量を監視したい場合は以下のようにします。

watch -n 5 df -h

このようにすれば、5秒ごとにdf -hの出力結果が表示され、ディスクの空き容量を監視できます。

注意点として、-n に指定する間隔は 1秒未満にはできません。もし「0.5秒ごとに実行したい」といった場合はwatchでは対応できず、他の方法(たとえばwhileループ+sleep)が必要になります。


出力内容を見やすくするオプション

-d(差分をハイライト)

watchは毎回全体を出力しますが、何が変わったのかが分かりにくいことがあります。そういうときには-dオプションが便利です。出力の変更部分をハイライト表示してくれるので、視覚的に差異を確認できます。

watch -d free -m

上記のコマンドはメモリ使用量を監視し、変化した箇所を強調表示してくれます。

-t(ヘッダーの非表示)

通常、watchは画面の一番上に「Every 2.0s: コマンド名」などの情報を表示します。これが邪魔な場合は-tオプションで非表示にできます。

watch -t uptime

このようにすれば、よりコンパクトな表示になります。


よく使う実用例

1. メモリ使用量を監視

watch -n 1 free -m

1秒ごとにメモリの使用量を確認できます。サーバーの負荷チェックなどでよく使われます。

2. 特定のプロセスの有無を確認

watch "ps aux | grep nginx"

nginxのプロセスが起動しているかを監視します。プロセスが落ちたかどうかを即座に察知できます。

3. ファイルの行数監視

watch "wc -l /var/log/syslog"

ログファイルの行数を監視することで、ログの増加具合を確認できます。

4. ネットワーク状況の監視

watch -n 1 ifconfig eth0

または最近の環境では ip コマンドを使って、

watch -n 1 ip -s link show eth0

でネットワークの送受信バイト数などを監視できます。


シェル機能と組み合わせる例

watchの中で複雑なコマンドを使いたい場合、シェルの機能を活用することができます。たとえば、ファイルの中身が増えたか確認するようなときにはこうします。

watch "ls -l /path/to/file | awk '{print \$5}'"

また、カスタムスクリプトを使って監視するのもおすすめです。簡単なスクリプトを書いて、それをwatchで定期実行すれば、より複雑な監視ができます。


watchの代替や制限について

watchは非常に便利なコマンドですが、いくつか制限もあります。

  • コマンド実行時間が長すぎると次の更新に間に合わない
  • 1秒未満の間隔は指定不可
  • 出力が画面からはみ出すとスクロールできない

こうした制限を超えたい場合は、以下のような方法が代替になります。

  • whileループ+sleepを使う
  • tophtopのようなTUIツールを使う
  • cronsystemd timerで定期実行

まとめ:watchコマンドはLinux監視の第一歩

watchコマンドは、Linux初心者から上級者まで広く活用されている監視ツールです。とくに何らかの出力結果を「手動で何度も打つのが面倒」と感じたら、まずはwatchを試してみるのが良いでしょう。

頻繁に使うようになると、自分用のスクリプトを作ってそれをwatchで監視したり、他のコマンドと組み合わせて自動化の一歩を踏み出したりと、応用の幅がどんどん広がっていきます。

Linuxの力を最大限に活かすために、ぜひwatchコマンドを使いこなしてみてください。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。