SSブログ

crontabの記述でdateコマンドを使う場合の注意 [UN*X]

軽くハマったのでメモ。

crontabで定期的にコマンドを実行したときに出力されたものをログとして書き出すときに、ファイル名のサフィックスとして日時をつけることで簡易ログローテーションさせたいというケースがある。

だが、以下の記述はうまくいかない。
0 0 * * * /usr/local/bin/hogehoge > /var/log/hoge/log.`date +%Y%m%d` 2>&1

これは%がcrontabでは特別な意味を持つ文字だからだ。
詳しくはman 5 crontabで。

%はバックスラッシュでエスケープすることで記述することができる。
0 0 * * * /usr/local/bin/hogehoge > /var/log/hoge/log.`date +\%Y\%m\%d` 2>&1



この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。