2017年1月20日金曜日

/var/log/cron に crond[xxxx]: (CRON) bad minute (/etc/cron.d/hoge.crontab) メッセージが出る

CentOS 7.3 で crontab を書いていて、/var/log/cron に謎のエラーが出て、しばし格闘したので備忘録です。
出力されたのは、次のメッセージです。
Jan 20 07:19:01 hoge crond[2587]: (CRON) bad minute (/etc/cron.d/hoge.crontab)
hoge.crontab の中身は、こちらです。例示のため、エッセンスに絞ってます。
OP=
30 7 * * * root [ -z "$OP" ] && true
実際に作成していた crontab は、もっと長いもので、どこに問題があるか分からず、徐々に削っていったら、OP= の行が原因とわかりました。おそらく、cronie に誤認されているものと思います。次のように書き換えたらエラー出なくなりました。
OP=""
30 7 * * * root [ -z "$OP" ] && true
やれやれ、こんなところで凝ったことをしようとしないほうが良いですね。

調査の過程で、次のページを参考にさせてもらいました。綺麗&上手にまとめてらっしゃるもんだなあと、感心してしまいました。
http://www.server-memo.net/tips/etc-crontab.html

ついでに、その他のハマりどころとして、環境変数 (例では OP=) の後半にコメント (#) は書けないという事を知りました。man 5 crontab に記述ありました。みなさまも、お気をつけください。

0 件のコメント:

コメントを投稿

人気ブログランキングへ にほんブログ村 IT技術ブログへ