[英]Why does my crontab not work?
我打算每分鍾運行一些bash腳本,我寫道:
* * * * * bash ~/Dropbox/temp_scripts/run_all_scripts
在crontab中。
它應該每分鍾運行一次,但是沒有用。 有誰知道為什么會這樣?
將評論轉換為答案。
在crontab
條目中將I / O重定向添加到命令行:
>/tmp/run_all_scripts.out 2>/tmp/run_all_scripts.err
一兩分鍾后,請檢查文件的內容。 考慮記錄環境以查看是否是問題的一部分。 並考慮使用bash -x
而不是bash
。
如果仍然什么也沒得到( /tmp
中的文件未創建),則說明cron
問題; 守護程序未運行,或者您的用戶沒有使用該守護程序的權限(但crontab
並未告知您),或者您尚未將crontab
提交給程序( crontab -l
說什么?),或者……什么是真的錯。
同樣要注意, cron
作業的輸出通常是(通過電子郵件發送給正在工作的人)(至少在某些情況下,在Mac OS X上是我當前使用的系統,在Solaris是我以前使用的另一個系統)。 您應該查看系統上的電子郵件。
謝謝! 我已經修好了! 它不起作用的原因是我在腳本中使用了“
ls -a .sh
”,並且crontab在正在執行的文件夾中找不到任何*.sh
文件時。 將其修改為“ls -a $HOME/Dropbox/temp_scripts/.sh
”時,一切正常! 此調試技術非常有幫助!
在許多方面,它是最基本的調試技術-確保您看到實際發生的情況。 如果不確定為什么外殼腳本不起作用,請確保可以看到它正在執行以及它以輸出方式產生了什么,並且(經常)確保您可以看到它在執行中的結果bash -x
或等效的。 (AFAIK,所有外殼程序都支持-x
來跟蹤執行。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.