便利だったのでメモ。
cronは最低1分おきにしか実行出来ないけど、そのcronで実行する script を工夫する。
例えば 10 秒おきに現在の時刻を吐き出す script を書く。
これがホームディレクトリにおく。
/home/orenomemo/date.sh
#!/bin/bash
export PATH=/bin:/usr/bin:/usr/local/bin
export DIRECTORY="/home/orenomemo"
cd ${DIRECTORY}
while true; do
CURTIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "current time: ${CURTIME}" >> date.log
sleep 10
done
これを cron で毎分実行する、という事なんだけど何も考えないと重複実行になってしまう。
なので以下のようにする。
* * * * * /usr/bin/pidof -x /home/orenomemo/date.sh || /home/orenomemo/date.sh &
pidof で pid の存在を確認したら何もしない、pid がない場合だけ実行する。