朝ドラ録画するのに、crontabで録画を毎朝7:55スタートで設定したのに、全然うまくいかない。というか、なんか毎日バラバラな時間に、ランダムに実行されている様子。
ーーー
/etc/cron.daily にあるファイルが自動実行されるらしい。
# vim /etc/crontab
/etc/cron.daily には録画スクリプトを置いた。
# cd /etc/cron.daily
しかし、できたファイルを見ると時間がおかしい。7:55 開始に設定したのに、なぜファイル作成日時が 4:51 なのか。
ーーー
調べたら、fedoraやCentOSでは、cronではなくanacronという仕組みに変わってしまっているかららしい。
技術/Linux/CentOS/CentOS6でのcron, anacron - Glamenv-Septzen.net
anacronは、実行日時にサーバの電源が入っていなかった場合に備えて、ゆるーい仕組みになっている。要は「**時から**時の間」で実行する、という設定になっていて、その時間帯に(サーバ電源が入っていなかったりが原因で)ジョブ実行された痕跡がなければ、もう一度実行する、のような幅のある仕組みのようだ。
つまり、anacronだと指定した日時での実行は期待できないらしい。勉強不足なだけかもしれないが、とにかく分かりにくい。
ーーー
直し方がここに書いてあった。
ーーー
(anacronだと)Cronのように決まりきった時間にジョブが実行されるわけではなく…
だと。目を疑う。fedora の開発チームは何を考えているのか。決まりきった時間に実行するのが大事なんじゃないか。仮に「その間にうまく実行できていなかったら再実行」したければ、それぞれのサーバ管理者が自分で考えてスクリプト組めばいいだけだ。良いものはこうやって壊されていくんだなぁ。
※ ちなみに、Debianにはanacronの仕組みは無いようで、raspberrypiに組んでるcronは、毎日決まった時間にきっちり仕事をしてくれている。
ーーー
従来通りのCronの設定に戻す。anacronは消す。
# yum -y install cronie-nonanacron
# yum -y remove cronie-anacron
ーーー
早速試す。
# vim /etc/crontab
run-parts が anacronらしいので、コメントアウトする。
7:55 に録画開始するスクリプトを登録。
7:55 で録画開始されたファイルがあるか確認。
ある。素晴らしい。やっと思い通りになった。これでDDNSの更新スクリプトも動くだろう。
fedora やめようかな。こんな開発体制じゃ心配になるぞ。