便利だったのでメモ。
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 がない場合だけ実行する。