Tips

コード例

`watch`は、指定したコマンドを定期的に繰り返し実行し、その出力をターミナルに表示し続けるコマンドです。これにより、ログファイルの監視やシステムの状態確認、テストの自動実行など、様々な状況でリアルタイムな情報更新を効率的に行えます。

技術・言語・ツール: watch

watchは、指定したコマンドを定期的に繰り返し実行し、その出力をターミナルに表示し続けるコマンドです。これにより、ログファイルの監視やシステムの状態確認、テストの自動実行など、様々な状況でリアルタイムな情報更新を効率的に行えます。

コマンドの出力をリアルタイムで監視するwatchコマンド

開発やシステム運用中に、特定のコマンドの出力を一定間隔で確認したい場面は多々あります。watchコマンドを使えば、手動で何度もコマンドを打ち直す手間を省き、自動的に最新情報を表示し続けることができます。

コード例

ファイルサイズの変化を監視する

現在のディレクトリの合計ファイルサイズがどのように変化するかを1秒ごとに確認します。

watch -n 1 'du -sh .'

ログファイルの末尾をリアルタイム監視する

アクセスログの末尾20行を監視し、新しいエントリが追加されるたびに表示を更新します。

watch 'tail -n 20 access.log'

テストの実行結果を監視する

フロントエンドやバックエンドのテストを繰り返し実行し、結果をすぐに確認したい場合に便利です。

watch 'npm test'

特定のプロセスの状態を監視する

起動中のアプリケーション(例: my_app)がどのような状態にあるか、定期的に確認します。

watch 'ps aux | grep my_app | grep -v grep'

注意点やおすすめポイント

  • -n SECONDS: コマンドの更新間隔を秒単位で指定できます(デフォルトは2秒)。
  • -d: 前回実行時からの変更点をハイライト表示してくれます。どこが変わったか一目で分かり、特にログ監視などで非常に役立ちます。
  • -c: ANSIカラーコードを正しく解釈して表示します。色付きのログやコマンド出力を監視する場合に便利です。
  • -t: 実行中のコマンド名や日付などのヘッダー部分を非表示にできます。出力内容だけをシンプルに表示したい場合に有効です。
  • 用途の広さ: 開発中のテスト自動化、システムリソースの監視、ログのリアルタイムチェックなど、多岐にわたる場面で活用できます。ターミナルを一つ開いてwatchコマンドを実行しておくだけで、常に最新の状況を把握できます。