Linux crontab下關於使用date命令的坑


  在測試環境中,一開發同事反饋自己設置的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")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM