【小ネタ】コマンド1行で無限ループさせたい

【小ネタ】コマンド1行で無限ループさせたい

コジマです。

サーバーいじってて色々監視したいときに気軽に無限ループさせたいときってありますよね。
私はあるんです。

  • ファイル転送を確認するために特定のディレクトリに対してlsし続けたい
  • ntpで時刻同期できることを確認するためにntpqし続けたい
  • 特定のプロセスの使用メモリ確認するためにpsし続けたい

そんなとき。psに関してはtopやらsysstatやらあるから他にやり方あるけども。
わざわざこれだけのためにシェル書くのもめんどくさかったりしますよね。

そんなときにはこの構文覚えましょう。

while true; do コマンド1;コマンド2;・・・;done

上記の例をコマンドにするとこんな感じになります。

while true; do ls -ls | grep test.txt; sleep 1; done
while true; do ntpq -q; sleep 1; done
while true; do ps aux | grep testprocess; sleep 1; done

これをやるときはsleep入れること推奨します。
sleepないと一瞬で画面がとんでもないことになります。
C言語プログラミングで意図せず無限ループを作ってしまった人にはわかるはずw

終了する時は「control + C」で大丈夫です。

注意しなきゃいけないのは、この小技を使用するときにpingみたいなデフォルトで無限回実行するコマンドを
入れないようにしてください。
control + Cで終わらそうとしてもまた始まります。
もしやってしまった場合はcontrol + Zで強制的にプロセスを殺してください。

短いけども、最近更新滞ってしまったので、小ネタもどんどん出していけるようにしますー。

以上、コジマでした。


小ネタカテゴリの最新記事