07:45コマンドを一定間隔で繰り返し実行することが必要になる場合に便利なLinuxの「watch」コマンド。ここでは、同コマンドの使用方法を解説する。Tweetクリップコマンドを繰り返し実行することが必要になる場合もある。Linuxサーバ上で奇妙な挙動に気づいて、サーバ上のメモリ使用かI/Oのいずれかに原因があるかもしれないと疑っている場合や、ディレクトリ内で実行される変更を監視したい場合などだ。watchと呼ばれる便利なコマンドを利用すれば、かなり簡単にそうした状況に対処できる。watchコマンドはほぼ全てのLinuxディストリビューションに標準でインストールされており、手軽に利用できる非常に便利なツールである。本記事では、watchについて解説する。読者のLinux管理タスクに役立ててほしい。watchの機能watchコマンドは一定間隔でのプログラムの実行を可能にし、コマンドの出力を特定の間隔で表示する。watchは、tailコマンドを使ってログファイルを確認するプロセスに似ていると考えてほしい。唯一異なるのは、出力がファイルではなく別のコマンドからもたらされることだ。そのため、コマンドの出力が時間の経過と共に変わっていくのを確認できる。初期状態だと、プログラムが2秒おきに実行される。したがって、dateコマンドの出力が2秒おきに変わるのを確認したければ、以下のコマンドを実行するといい。datewatchコマンドは2秒おきにdateコマンドを実行し、出力をターミナルウィンドウに表示する(図A)。図A:watchでdateコマンドを実行。この画面から出るには、キーボードの「Ctrl」+「c」を押す。watchを活用するもちろん、watchでdateコマンドを実行してもあまり役に立たない(どうしてもターミナルに時計が欲しいのなら話は別だが)。このコマンドを有効に活用しよう。マシン上のメモリに関連する問題に気づいたとしよう。この場合、freeコマンド(システムの使用メモリと空きメモリの量を表示する)をwatchと組み合わせると、メモリの現在の状況を把握できる。これを行うには、以下のコマンドを実行する。freefreeコマンドは2秒おきに実行され、出力をターミナルに表示するので、ユーザーがこのコマンドを繰り返し実行する必要はない(図B)。図B:watchでfreeを実行。基本的なwatchコマンドを実行することに関しては(特にfreeのようなプログラムと一緒に使うと)、1つ問題がある。実行前と実行後で何が変わったのか分かりにくい場合があることだ。-dオプションを使えば、それを分かりやすくすることができる。freeを実行すれば、freeコマンドが実行されるたびに、出力の変更箇所が強調表示されるようになる(図C)。図C:出力の視認性が大幅に向上した。これで、出力の変更箇所を示す強調表示部分に注目するだけでよくなった。初回実行時からの全ての変更箇所を強調表示させたい場合は、以下のように=cumulativeオプションを追加するといい。free-d=cumulativeオプションを使えば、強調表示部分の追跡がさらに容易になる。プログラムを2秒おきに実行する必要がない場合は、どうすればいいのだろうか。-nオプションを使えば、アプリケーションを実行する間隔を(秒単位で)定義することができる。freeコマンドを5秒おきに実行したい場合は、以下のコマンドを実行するといい。freewatchの有効な使い方の1つは、ファイルの変更を監視することだ。重要なディレクトリ(クライアントのデータ用のディレクトリなど)があり、そこに含まれるファイルやサブディレクトリに異変が起きている疑いがあるとしよう。この場合は、以下のコマンドを実行する(DIRECTORYの部分は、監視対象のディレクトリに置き換える)。/DIRECTORYこのコマンドは、そのディレクトリの中身を2秒おきにリスト表示し、変更箇所を強調表示する。(変更されるべきでない)許可設定が変更されていたら、何かが起きている可能性がある。この機能は非常に便利だ。シンプルだが効果的なツールwatchコマンドは画期的な機能というほどではないが、Linuxサーバのトラブルシューティングや管理に効果的なツールであることは確かだ。watchコマンドを実行して、マニュアルページを熟読してほしい。Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。【PR】残業禁止だけじゃ改悪に!生産性向上特集トレンドまるわかり![PR]モダナイズから始めるデジタル化DX時代を生き抜く企業への条件は「変化」に強くなること。permission.このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。