2011年3月27日日曜日

シェルで繰り返し処理を行う。

cron を使わずに、一定間隔で同じ処理を行うコマンド。

# while [ 1 ];do date;sleep 1; done

ある作業中に一時ファイルが作成されるのですが、そのファイルが巨大化し問題となりました。ファイル容量の推移を調査するために使用したコマンドです。

60 秒ごとに date コマンドと ls コマンドが実行され、結果をファイルに出力します。

# while [ 1 ];do date >> /tmp/kadofuji/ls_result.log;ls -lh /tmp/target >> /tmp/kadofuji/ls_result.log; sleep 60; done

sleep 60 で、指定の時間処理が待機されます。数値は秒数です。
date で実行したときの時間を記録します。
ls -lh 「-h」オプションで、出力結果の単位を自動的に見やすいもの(K、M、G バイト等)に設定されます。
リダイレクト「 >> 」で、ファイル末尾への追加書き込みを行っています。/tmp/kadofuji/ls_result.log に結果が記録されます。
while [ 1 ];do~; doneは無限ループになっています。「Ctr+C」を押すか、プロセスを殺して停止させます。

0 件のコメント:

コメントを投稿