[英]How to know if Crontab is working?
我正在嘗試運行一個簡單的crontab(在Mac OSX Terminal上)
我的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一起使用,因為在我刪除它后,文件不會更改。
刪除文件后嘗試。 如果crontab運行,則應創建它
有一種方法可以檢查您的crontab作業是否成功運行。 請注意,cron命令中的日志文件引用是使用完整路徑而不是相對路徑給出的。 您需要確保腳本使用完整路徑或cd到正確的工作目錄。
假設您已經將backup.sh添加到crontab中,如下所示,以在每天午夜執行該文件。
$ crontab -e 59 23 * * * /home/john/bin/backup.sh
要驗證此作業是否成功執行,請檢查/ var / log / 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作業的日期和時間
主機名–服務器的主機名(例如dev-db)
cron守護進程名稱和PID。 例如crond [20399]
用戶名–執行此cron作業的用戶名。 例如,約翰。
CMD –此后的所有操作都是當時已執行的實際命令。
如果backup.sh中有任何回顯語句,則可能需要將其記錄到文件中。 通常,如果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)指向的同一文件描述符。
因此,標准輸出和錯誤都將重定向到/home/john/logs/backup.log
首先檢查您是否對cron.sh文件具有足夠的權限。
chmod 755 cron.sh
然后修改您的crontab以使其定期運行(即1分鍾):
*/1 * * * * /Users/tanavya.dimri/Documents/cron.sh
默認情況下,cronjobs登錄到/var/log/syslog
因此,您可以簡單地grep記錄CRON並檢查作業執行情況:
grep CRON /var/log/syslog
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.