在測試環境中,一開發同事反饋自己設置的crontab不生效,定時任務如下:
*/6 * * * * date >> /usr/local/log/log_$(date +%Y%m%d%H%M).txt
咋一看,好像沒什么問題。
先按照思路來測試一下:
1. 直接在命令行中執行沒有問題
# date >> /usr/local/log/log_$(date +%Y%m%d%H%M).txt
2. 查看/va/log/cron日志,也沒發現問題
3. cron服務是正常的
4. 環境變量問題,date要使用絕對路徑? 測試了一下,把定時任務改成
*/6 * * * * date >> /home/a.txt
定時任務執行正常。
5. 那問題應該就是$(date +%Y%m%d%H%M) 的問題了,在終端上執行的
`date +"%Y%m%d_%H:%M"` 和 $(date +"%Y%m%d_%H:%M")
在crontab下不起作用,需采用如下形式:
`date +"\%Y\%m\%d_\%H:\%M"` 和 $(date +"\%Y\%m\%d_\%H:\%M")