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
動いた!!