日曜エンジニア

仕事・趣味のメモ置き場です。皆様のお役に立てれば幸いです。

cronでハマった

昨晩、サーバのcron.dにコマンドを仕込んで帰ってたら、翌朝に出社して動いてなくてショック。そんな覚え書き。

# cat /etc/cron.d/ls_chk
0 0-23/6 * * * root /bin/ls />/tmp/`date '+%Y%m%d%H%M'`

うまくできない。。。

# cat /var/log/cron
(root) CMD (/bin/ls>/tmp/`date '+)

あれ?コマンド途中で千切れてる、、、?

cronは、%は誤認識するらしい。
crontabでは'%'をエスケープしなきゃいけない - 駄日記
 
こちらが正解でした。

# cat /etc/cron.d/ls_chk
0 0-23/6 * * * root /bin/ls>/tmp/`date '+\%Y\%m\%d\%H\%M'`

それにしても、dateコマンドの引数ってよく忘れる。精進しないと。

2015/6/4 追記)
上記の正解で記載しているcronにエスケープ処理が入ってませんでした。