どんなことでも

この人 blog を書くのだろうか?

定期的に実行する on UNIX

2011-02-26 07:28:00 | Unix
もっとマシな方法がある筈と思いつつ………。そして、多分 blog を漁れは過去のが見つかりそうだか。

試した環境
 HP-UX 11i の sh へ張り付け
(バージョンの最後の i は、iモードの i だそうな。iモード用にチューニングしたのかな?)
UNIX系 OS 全般の Born shell、ksh 辺りで動くと思います。


# 実行間隔 (秒)
interval=3600 # 1h
interval=600 # 10m

while true
do
date
「定期的に実行するコマンド」
sec=`date "+$interval - \( \( %H \* 60 + %M \) \* 60 + %S \) %% $interval"`
sleep `sh -c "expr $sec"`
done

0時00分00秒を基準に、interval 秒毎にコマンドを実行。

終了は ^C 等で。
クォートが上手くいかないので、一度 sh を通してクリーンナップ。これを無くしたいところだが………。


ちなみに、簡易版
注:定期的に実行するコマンドが interval より十分に短い場合のみ機能します。

while true
do
date
「定期的に実行するコマンド」 &
sleep $interval
done


いじょ、携帯より。書くの面倒だったなぁ。誤植には注意!

最新の画像もっと見る

コメントを投稿