linux

cronのログを日付ごとに出す方法



バッチ用プログラムを書いた時に一々プログラム側でログの出力をするのが面倒って時に使えます。

ログの出力先に指定して、dateコマンドを使ってログファイルを出力します。

サンプルcron
0 0 * * * /bin/sh /root/batch.sh > /root/log/bat_`date +%Y%m%d`.log

ですが上記のままだとエラーに・・・
上記のままだと以下のエラーが出力されます。
/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file

原因は「%」でした。
cronだと「%」はコマンドの終わりと解釈されるようです。
なのでシングルクォートが閉じられていない等のエラーが出ていました。
以下のように「バッククォート(\)」でエスケープすると正常に動作するようです。
0 0 * * * /bin/sh /root/batch.sh > /root/log/bat_`date +\%Y\%m\%d`.log



コメントを残す