2016-03-02 169 views
2

我想(在Mac OS X的終端)運行一個簡單的crontab如何知道Crontab是否工作?

我的cronjob事情是這樣的:

* * * * * /Users/tanavya.dimri/Documents/cron.sh 

cron.sh:

#!/bin/bash 
cd /Users/tanavya.dimri/Documents 
python hello.py > empty 

而且hello.py簡直就是

print "Hello" 

當我剛運行sh cron.sh它的作品。空,這只是一個空文本文件,確實會變成「Hello」。 但是,我真的不知道它是否與crontab一起工作,因爲在我從中刪除hello後文件不會改變。

+0

刪除文件後嘗試。如果crontab運行,它應該創建它。 – sabbahillel

+0

該con不會知道'.bashrc'的'.profile'中的設置。也許你錯過了一些東西,比如改變PATh,所以可以找到pythom。 –

回答

0

刪除文件後嘗試。如果crontab運行,它應該創建它

有一種方法可以檢查您的crontab作業是否成功運行。請注意,cron命令中的日誌文件引用是使用完整路徑而不是相對路徑給出的。您需要確保您的腳本使用完整路徑或cd到正確的工作目錄。

Crontab Log: How to Log the Output of My Cron Script

讓我們說,你已經添加了backup.sh到你的crontab如下圖所示 在每天午夜執行。

$ crontab -e 59 23 * * * /home/john/bin/backup.sh 

爲了驗證這個工作是否得到了成功,或不執行,檢查 在/ var /日誌/ cron的文件,其中包含所有的,被你的系統所執行的的cron 作業的信息。正如您從以下 輸出中看到的,john的cron作業已成功執行。

$ tail /var/log/cron 
Oct 8 22:00:00 dev-db crond[18340]: (root) CMD (/bin/sh /home/root/bin/system_check &) 
Oct 8 23:00:00 dev-db crond[20348]: (oracle) CMD (/bin/sh /home/oracle/bin/cleanup.sh &) 
Oct 8 23:59:00 dev-db crond[20399]: (john) CMD (/bin/sh /home/john/bin/backup.sh &) 

的Cron日誌包含以下信息:

時間戳 - 當被執行的cron作業的日期和時間

主機名 - 服務器的主機名(例如,開發-db)

cron deamon名稱和PID。例如,crond [20399]

用戶名 - 該cron作業執行的用戶名。例如,對於 約翰。

CMD - 接下來的任何事情都是當時在 處執行的真正命令。

如果在backup.sh中有任何echo語句,您可能需要 將這些語句記錄到文件中。通常,如果backup.sh cron腳本 引發任何輸出(包括錯誤),則可能需要將這些輸出記錄到 日誌文件中。爲此,請修改crontab項並添加輸出和 錯誤重定向,如下所示。

$ crontab -e 59 23 * * * /home/john/bin/backup.sh > /home/john/logs/backup.log 2>&1 

在上述:

/home/john/logs/backup.log表明 backup.sh腳本的標準輸出將被重定向到的backup.log文件。

2> & 1表示的標準誤差(2>)被重定向到由標準輸出(& 1)所指向的相同 文件描述符。

因此,標準輸出和錯誤將被如果你有你的cron.sh文件足夠的權限重定向到 /home/john/logs/backup.log

+1

Nah ..不起作用。 ;/ – SinByCos

+0

@AlexStone您是否使用了文件所在位置的完整路徑來確保它位於正確的位置? – sabbahillel

+0

@AlexStone我添加了一些更詳細的信息,我需要做什麼。 – sabbahillel

0

首先檢查。

chmod 755 cron.sh 

然後修改你的crontab定期運行(即1分鐘):

*/1 * * * * /Users/tanavya.dimri/Documents/cron.sh 
0

默認情況下cronjobs登錄到/var/log/syslog

因此,你可以簡單地認爲登錄科雷和grep檢出你的作業執行:

grep CRON /var/log/syslog