2013-02-14 267 views
0

當我使用root手動運行腳本時,它工作正常。當我在cron內執行相同的腳本時,它不會運行。我檢查了cron實際上正在調用腳本,但腳本沒有執行。我將腳本中輸出的回聲輸出到文本文件中,但文本文件沒有記錄任何內容。請檢查這個cron的crontab無法正常工作

*/10 * * * * sh /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt 
+0

從哪個用戶crontab運行腳本? – pomaxa 2013-02-14 11:39:38

+2

添加'2>&1'重定向以獲得日誌文件中的'stderr'。 – 2013-02-14 11:39:41

+0

@Anton我很抱歉我是一個新手。在那個腳本中添加2>&1的位置。 – user1597811 2013-02-14 11:45:49

回答

3

嘗試/bin/sh改變sh

*/10 * * * * /bin/sh /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt 
5

另一種方法,以避免輸入完整的可執行的路徑是把外殼全局變量在你crontab的頂部:

SHELL=/bin/sh 
PATH=/bin:/usr/bin:/usr/local/bin 
[email protected] 

*/10 * * * * stuff > log 2>&1 

注意> log 2>&1語法登錄日誌文件都STDERR & STDOUT

+0

我有同樣的問題,當使用curl它不工作,但/ usr/bin/curl 它工作完美 – vuhung3990 2014-08-18 04:01:09