crontabでは'%'をエスケープしなきゃいけない

状況

フロントのリバプロが複数ある環境下でawstats日本語版を使いたい。当日のデータはオンタイムで更新されなくてもOK。ログは日ごとに分かれて"/logfolder/accesslogs/"に保存されているので色々とごにょごにょしなきゃいけないと。なんで以下の感じでcronを設定してみる。

0 3 * * * * cat /logfolder/accesslogs/*`date --date='yesterday' +%Y%m%d` | /usr/local/awstats/wwwroot/cgi-bin/utf8_decod
e.pl >> /awstats/domain_log.utf
0 4 * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=somedomain

次の日確認してみると、、、動いていないっぽい。。。

解決

cron設定ファイルって少なくとも"%"をエスケープしなきゃいけないらしい。

0 3 * * * * cat /logfolder/accesslogs/*`date --date='yesterday' +\%Y\%m\%d` | /usr/local/awstats/wwwroot/cgi-bin/utf8_decod
e.pl >> /awstats/domain_log.utf
0 4 * * * /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=somedomain

動いた!!