crontab の設定で日付の入った名前のファイルをつくろうとしたらエラーでたよ

やりたかったこと

cron で毎日行うバッチ処理でファイル名に日付入りのものを作ろうとしてこんな感じでcrontabに記述してた。

0 5 * * * /bin/sh ~/batch.sh > ~/`date +%Y%m%d`.log

エラー発生

みたいにやってたらどうも動いてないのでcronのメールの中身見てたらエラー出てた。
なんぞこれ


/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file

原因

ふむ。。いろいろ調べてみると
同じようにひっかかってる人がいたので原因判明(=´∇`=)

cronだと%がコマンドの終わりと解釈されるみたい。
なんでバッククォートの対の対応が見つからない、ってのでエラーはいてたのね。


解決

ということで % をエスケープしてやるとうまくいきました。

0 5 * * * /bin/sh ~/batch.sh > ~/`date +\%Y\%m\%d`.log