Linuxのターミナルでコマンドを一定間隔で繰り返す方法
システムリソースや特定の出力をリアルタイムで監視することは、特にトラブルシューティングや、舞台裏で何が起こっているかを確認したい場合に非常に役立ちます。Ubuntuwatch
のコマンドは、この用途で驚くほど便利です。このコマンドは、任意のコマンドを指定した間隔で繰り返し実行してくれるので、何度も入力したり、ターミナルを頻繁に更新したりする必要はありません。しかし、非常にシンプルなツールであるにもかかわらず、誤用されたり、誤解されたりするため、時に困惑してしまうことがあります。このガイドでは、その点を解消し、最大限に活用するための実用的なヒントを紹介します。このガイドに従えば、メモリ、CPU、ディスク容量など、あらゆるものをリアルタイムで簡単に監視できるようになります。
Ubuntuでwatchコマンドを使用する際によくある問題を解決する方法
ウォッチコマンドが機能しない、または出力が期待どおりに更新されない
コマンドが更新されない場合watch
、またはエラーが発生する場合は、まず、渡したコマンド自体が正常に動作するかどうかを確認してください。 のようなコマンドは、free -h
単独では正常に動作しても、 経由で実行すると問題が発生することがありますwatch
。あるいは、-n
パラメータが指定されていないために、デフォルトで長い間隔が設定され、更新されていないように見える場合もあります。また、コマンドが正しい構文watch -n 2 free -h
( (2秒ごとに更新)など)で実行されていることを確認してください。ターミナルウィンドウが頻繁な更新をサポートしているかどうかを確認してください。一部のリモートSSHセッションでは、更新の問題や遅延が発生する場合があります。
補足:一部の設定では、watch
権限がオフになっている場合やコマンドの出力が冗長すぎる場合、特定のコマンドの実行が拒否されることがあります。その場合は、まずコマンドを個別に実行してみると、トラブルシューティングに役立ちます。また、出力がフリーズしているように見える場合は、Ctrl+
リフレッシュレートが遅すぎる、または速すぎる場合の対処法
コマンドの実行頻度を調整するのが鍵です。「1秒ごと」や「5秒ごと」-n
のように、秒数を指定して実行します。これは、コマンドの実行が不安定すぎる場合や、頻繁に更新する必要がない場合に役立ちます。ただし、非常に短い間隔(1秒未満など)を設定すると、CPU負荷が上昇したり、ターミナルにデータが殺到したりする可能性があるので注意してください。なぜそうなるのかは分かりませんが、ターミナルセッションまたはSSH接続を再起動すると状況が改善することがあります。不思議ですが、事実です。watch -n 1 command
watch -n 5 command
修正1: コマンドが正しく実行されているか確認する
場合によっては、コマンドが の外部で動作していないことが問題になることがありますwatch
。例えば、 を使ってディスク容量を監視しようとしている場合、まずは をdf -h
単独でdf -h
実行します。エラーが発生したり、意味のある出力が何も出なかったりする場合は、まずそれを修正してください。 が単独で動作するようになったら、 でラップすることでwatch -n 2 df -h
リアルタイムの更新情報が表示されるようになります。また、コマンドが PATH で利用可能になっていることを確認してください。例えば、 や のようなコマンドはhtop
監視するtop
必要はありませんがwatch
、独自のインターフェースで直接実行した方がより適切に動作することがよくあります。
修正2: コマンドオプションまたは環境を調整する
コマンドが冗長だったり、大量のデータを出力する場合は、改善を検討してください。例えば、memory の場合、 ではなくfree -m
、free -m | grep Mem
主要な情報に焦点を当て、出力を簡潔にしましょう。また、ターミナルのスクロールバックバッファを確認してください。バッファがいっぱいだったり小さかったりすると、更新がおかしく見えたり、遅延したりすることがあります。ターミナルのスクロールバック制限を増やすか、ウィンドウのサイズを変更すると改善されるかもしれません。
修正3: 特定のタスクに代替ツールやコマンドを使用する
特に高頻度の更新や複雑な出力の場合は、必ずしもwatch
最適な方法とは限りません。例えば、CPU負荷の監視には、対話型プロセスビューアであるhtopが適しているかもしれません。ディスク容量の監視には、 「設定」>「ディスク使用量アナライザー」の順にクリックすると、より視覚的に確認できます。ただし、コマンドライン監視を優先する場合は、 、 、 などwatch
のターゲットコマンドやその他のシステムコマンドと組み合わせると非常に効果的です。vmstat
top
追加のヒント: 一部のコマンドではsudoが必要になる場合があることに注意してください。
特定のパーティションのディスク情報など、ルート権限が必要な情報を監視したい場合は、 を実行してください。ただし、毎回実行するのはやり過ぎかもしれませんが、正確なデータを取得するにはこれが唯一の方法である場合もあるsudo watch -n 2 df -h
ので注意してください。sudo
まとめ
Ubuntuでの使用はwatch
それほど複雑ではありませんが、更新がうまくいかなかったり、コマンドが失敗したりする場合のトラブルシューティングは少し難しい場合があります。コマンドが単独で機能するか確認し、実行間隔を調整し、ターミナルが連続出力に対応していることを確認することで、通常は問題が解決します。設定によっては、ターミナルまたはSSHセッションを再起動するだけで、奇妙な不具合が修正されることもあります。さまざまなコマンドとオプションを試してみて、ニーズに最適なリアルタイム情報が得られる方法を見つけてください。
まとめ
- コマンドが機能することを確認するために、コマンドを個別にテストします。
-n
のように更新間隔を設定するために使用しますwatch -n 2
。- 出力が遅い場合は、ターミナルの設定を調整してください。
- プロセス監視にはhtopなどの代替ツールを検討してください。
- 権限の問題が発生した場合に実行します
sudo
。