問題背景:
每天資料庫自動備份並自動發出郵件。 手動執行指令碼沒有任何問題, 但放在crontab 則無法執行。
排查過程:
查詢日誌,發現系統日誌裡面沒有crontab的日誌。
1. 開啟日誌,我這裡為ubuntu系統:
vi /etc/rsyslog.d/50-default.conf#cron.* /var/log/cron.log
將這一內容的注釋取消, 並重啟syslog:
service rsyslog restart
2. 執行指令碼執行時間調為最近的乙個時間,待其執行,並檢視日誌:
tail -100f /var/log/cron.logdec 7 13:55:01 db-gd2a-252-105 cron[20064]: (dbadmin) cmd (/usr/bin/python /home/dbadmin/sh/send_mail.py >/dev/null 2>&)
dec 7 13:55:01 db-gd2a-252-105 cron[20062]: (cron) info (no mta installed, discarding output)
在這裡我們有乙個錯誤產生,產生這個錯誤的原因是crontab執行指令碼時不會直接報錯,而是會以郵件的形式傳送到郵箱,如果沒有配置,則會報出這個錯誤。
解決辦法:
00 14 * * * /usr/bin/python /home/dbadmin/sh/send_mail.py >/dev/null 2>&1
在這一條計畫任務後加 >/dev/null 2>&1 即可解決此問題。
經過上面的方法修正好,crontab能正常執行。
crontab自動執行任務,失敗原因記錄
伺服器上使用crontab部署這兩個每分鐘自動執行的命令。首先,這兩個命令是之前的人部署的,在我接手之前,就一直在了的。根據命令,實際上應該是做到每分鐘都執行一次指令碼。但是實際操作中,卻發現,其實並沒有嚴格的按照每分鐘一次執行,有時候是兩三分鐘才會執行一次。因為這個延遲並不是特別影響實際應用,所以...
crontab 執行失敗原因
1.cron 服務沒有啟動 使用 etc init.d crond status 如沒有啟動,啟動該服務 etc init.d crond start 2.crontab 指令碼中使用了相對路徑引用可執行檔案,導致找不到可執行檔案 3.crontab 使用者對crontab 指令碼中呼叫的可執行程式...
crontab任務未執行
最近在ubuntu系統中使用crontab定時任務遇到了問題,現記錄下來,希望能夠幫助到遇到同樣問題的同學。問題描述 使用crontab做mysql資料庫的定時備份,發現到點确沒有正常執行任務完成備份操作。解決思路 1.使用 service cron status 檢視crontab任務是否正常啟動...