2011-04-29 189 views
3

我正在使用Ubuntu Linux 10.0.4。我想每6小時運行一次腳本,每天。當我發出sudo crontab -e,我看到:如何測試cron作業?

# m h dom mon dow command 
* 00,06,12,18 * * * /opt/scripts/selenium/run_nis_inf_tests.sh 

但是,我沒有從我的劇本看到預期的結果,我不,如果它的運行,甚至肯定。有沒有一種方法可以在等待指定時間之前測試腳本是否正常運行。或者,我如何查看腳本生成的錯誤? - 戴夫

+0

你也應該照顧有關的cronjob的文件名,並避免下劃線或擴展。例如在Ubuntu的母親(例如Debian)上,我遇到了這樣的問題[這裏](http://stackoverflow.com/questions/5486601/linux-debian-crontab-job-not-executed)。 – hornetbzz 2011-05-01 18:53:27

回答

4

您可以將MAILTO變量更新爲您的電子郵件地址,並且cron應通過電子郵件向您發送任何STDOUT和STDERR輸出。同時檢查你的系統日誌文件/ var/log/messages以查看腳本是否正在被cron執行。

託尼

+0

是否總會有寫入/ var/log/messages的成功/失敗消息?如果是這樣,它不包含任何關於我的cron,這將表明它沒有運行。我還沒有在我的機器上設置電子郵件,所以我會給它一個去看看是什麼震動。 – Dave 2011-05-02 14:38:49

+0

沒有任何信息寫入/ var/log/messages,但在crontab行上面添加MAILTO變量給出了我正在尋找的反饋。 - 戴夫 – Dave 2011-05-04 14:23:31

1

克朗應該郵寄結果,所以它看起來像你有問題。 這裏,似乎你缺少一個用戶運行該腳本:

00,06,12,18 * * * user_name /opt/scripts/selenium/run_nis_inf_tests.sh 

由腳本需要通過運行在用戶的名稱替換USER_NAME,驗證「run_nis_inf_tests.sh」權限,你應該好的。

+0

當我嘗試了你的建議(添加用戶名)時,出現錯誤「/ bin/sh:selenium:not found」。我使用的語法是「00 */1 * * * /opt/scripts/selenium/run_nis_inf_tests.sh」。 – Dave 2011-05-04 15:35:49

+0

對不起,您的情況下不需要用戶名,因爲您使用crontab -e!你檢查了syslog.conf嗎? – mecano 2011-05-05 09:37:29