2012-09-17 108 views
0

我的腳本位於/ u01/software/aditya/script /目錄下。腳本的名稱是myscript.sh。我能夠運行這個腳本並獲得輸出。我正試圖在每天早上6點30分爲這個腳本設置一個cronjob。我以root用戶身份執行此操作。我已經完成了以下步驟,但沒有獲得輸出。腳本的Crontab

crontab -e 
30 06 * * * sh /u01/software/aditya/script/myscript.sh >> /u01/software/aditya/hello.log 
:wq 

,但沒有得到在hello.log文件中的任何更新:(。請幫助...。

+0

':wq'是否真的在你的'crontab'中?嘗試刪除它... – nneonneo

+0

我修正了降價。 :wq在編輯器中(vi,我猜)。 – Barmar

+0

我敢打賭這是同樣的問題http://stackoverflow.com/questions/12453432/hourly-cron-job-did-not-run – Barmar

回答

1

首先檢查你的cron的日誌文件通常是在/var/log/syslog,還應該有類似

Sep 17 06:30:01 localhost CRON[17725]: (root) CMD (sh /u01/software/aditya/script/myscript.sh >> /u01/software/aditya/hello.log) 

如果沒有,你的劇本從來沒有運行。這可能是由於破crontab文件,你應該確保該文件總是以換行符結束,更好地插入多張末如此次在意外刪除一個不會破壞文件。

如果該行存在於日誌文件中,那麼腳本已經運行,但沒有生成任何輸出。當通過cron運行時,可能會由於不同的環境而發生這種情況。

還要注意的是>>只重定向標準輸出,不標準錯誤。如果您想要重定向stderr,則在該行的末尾添加2>&1

0

通常這是由PATH問題引起的。 myscript.sh很可能會調用cron運行的PATH中不可用的命令。一些選項來解決這個問題是:

  • 確保在myscript.sh每個命令是一個完整的路徑引用(乏味)
  • 添加source ~/.bashrcmyscript.sh
  • 頂部添加export PATH=$PATH:<colon delimited list of paths necessary for myscript.sh to run correctly>

選擇上面的一個,或者你也可以在這裏選擇一個選項:Hourly cron job did not run