GNU/Linux >> Linux の 問題 >  >> Linux

Linuxのwatchコマンドでコマンドとタスクを監視する

次のように、何かが終了するのを待つ必要がある場合がよくあります。

  • ファイルのダウンロード。
  • tarファイルの作成または抽出。
  • Ansibleの仕事。

これらのプロセスの中には、ある種の進行状況を示すものもありますが、プロセスが抽象化レイヤーを介して実行される場合があり、進行状況を測定する唯一の方法はその副作用によるものです。これらのいくつかは次のようになります:

  • ダウンロード中のファイルは増え続けています。
  • tarballから抽出されたディレクトリがファイルでいっぱいになります。
  • Ansibleジョブはコンテナーを構築します。

次のようなコマンドを使用して、これらすべてをクエリできます。

$ ls -l downloaded-file
$ find . | wc -l
$ podman ps
$ docker ps

ただし、Bashの履歴と上向き矢印が便利な場合でも、これらのコマンドを繰り返し実行します。 、退屈です。

もう1つのアプローチは、これらのコマンドを自動化するための小さなBashスクリプトを作成することです。

while :
do
  docker ps
  sleep 2
done

しかし、そのようなスクリプトを書くのも面倒になる可能性があります。少し一般的なスクリプトを記述してパッケージ化できるので、いつでも利用できます。幸いなことに、他のオープンソース開発者はすでにそこにいて、それを行っています。

結果はコマンドwatchです 。

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

時計の取り付け

watch コマンドはprocps-ngの一部です パッケージなので、Linuxを使用している場合は、すでにインストールされています。

macOSで、watchをインストールします MacPortsまたはHomebrewを使用します。 Windowsでは、Chocolateyを使用します。

時計の使用

watch commandは定期的にコマンドを実行し、その出力を表示します。テキスト端末の優れた機能があるため、最新の出力のみが画面に表示されます。

最も簡単な使用法は次のとおりです。watch <command>

たとえば、docker ps watchを使用したコマンド このように機能します:

$ watch docker ps

watch コマンド、およびいくつかの創造的なUnixコマンドライントリックは、アドホックダッシュボードを生成できます。たとえば、監査イベントをカウントするには:

$ watch 'grep audit: /var/log/kern.log |wc -l'

最後の例では、監査イベントの数が変更されたことを視覚的に示す場合に役立つ可能性があります。変更が予想されるが、何かを「異なる」ように見せたい場合は、watch --differences うまく機能します。前回の実行との違いを強調しています。これは、複数のファイルをgrepしている場合に特に効果的であるため、どのファイルが変更されたかを簡単に確認できます。

変更が予想されない場合は、watch --differences=permanentを使用して、変更を「永続的に」強調表示して、調査する変更を確認するように依頼できます。 。多くの場合、これはより便利です。

周波数の制御

最後に、コマンドはリソースを大量に消費する場合があり、あまり頻繁に実行しないでください。 -n パラメータは周波数を制御します。ウォッチはデフォルトで2秒を使用しますが、watch -n 10 サブディレクトリ内の任意のファイルのパターンをgrepするなど、より多くのリソースを消費するものに適している可能性があります:

$ watch -n 10 'find . -type f | xargs grep suspicious-pattern'

watchでコマンドを見る

watch コマンドは、次のステップに進む前に、進行状況バーなしで時間のかかるステップを待つ必要がある多くのアドホックシステム管理タスクに役立ちます。これは良い状況ではありませんが、watch それを少し良くすることができます—そしてあなたに回顧展のためにそれらのメモに取り組み始める時間を与えることができます! チートシートをダウンロードする 役立つ構文とオプションを手元に置いておくため。


Linux
  1. Linuxcronコマンドを使用したタスクのスケジューリング

  2. Linuxlogrotateコマンドを使用してログをローテーションおよびアーカイブします

  3. findコマンドを使用してLinux上のファイルとディレクトリを検索します

  1. Linux Sedコマンド:使用法と例

  2. Linuxコマンド-概要と例

  3. Linuxコマンド:jobs、bg、およびfg

  1. Linuxatコマンドでタスクをスケジュールする

  2. xclipを使用してLinuxコマンドラインでコピーして貼り付けます

  3. AからZのLinuxコマンド