我試圖以root身份運行一些cron作業,但似乎我的crontab它不工作。在閱讀了很多線程後,我改變了這些東西:儘管嘗試了不同的修復從Stackoverflow crontab不工作
- 我已經刪除了crontab裏面的sudos。
- 我已經添加了crontab中所有命令的完整路徑。
- 我每次更改它時都重新啓動了cron作業。
但它還沒有工作。
這是我目前的crontab(我叫它從我的sudo的用戶提供「須藤的crontab -e」來運行它作爲root):
0 4 * * * /usr/bin/find /var/backups/mongobackups/ -mtime +7 -exec rm -rf {} \; > /var/log/log1.log
5 4 * * * /usr/bin/mongodump --out /var/backups/mongobackups/`date +"%m-%d-%y"` --ssl --sslPEMKeyFile=/etc/ssl/mongo.pem --username <mymongoadminusername> --password <mymongoadminpassword> --authenticationDatabase=admin > /var/log/log2.log
30 4 * * * /opt/letsencrypt/certbot-auto renew > /var/log/log3.log
35 4 * * * /etc/init.d/nginx reload > /var/log/log4.log
40 4 * * * /bin/cat /etc/letsencrypt/archive/<mydomanin>/{fullchain1.pem,privkey1.pem} | /usr/bin/tee /etc/ssl/mongo.pem > /var/log/log5.log
我試圖與這5個命令做的是:
- 在04:00。刪除超過7天的所有備份。
- 在04:04。備份我所有的mongodb數據庫。
- 04:30。嘗試續訂我的SSL證書。
- 在04:35。重新加載Nginx服務。
- 在04:40。用新證書更新我的mongodb.pem文件。
很重要的一點是,這些命令中的每個命令都可以通過sudo逐一運行,並且運行正常。
但是從cron的結果是:
我不知道是否該命令的工作。日誌文件(log1.log)爲空。
這不起作用。沒有創建備份。日誌文件(log2.log)尚未創建。
看來,它的工作。日誌文件(log3.log)顯示正確運行此命令時的標準輸出。
看來,它的工作。日誌文件(log4.log)顯示正確運行此命令時的標準輸出。
看來它不工作。 mongo.pem文件具有正確的更新日期,但該文件爲空。文件fullchain1.pem和privkey1.pem具有正確的內容,因此它似乎是「/ usr/bin/tee /etc/ssl/mongo.pem」的問題。日誌文件(log5.log)尚未創建。
最後cron.log表明這一點:
Nov 11 04:00:01 myservername CRON[31286]: (root) CMD (/usr/bin/find /var/backups/mongobackups/ -mtime +7 -exec rm -rf {} \; > /var/log/log1.log)
Nov 11 04:05:01 myservername CRON[31297]: (root) CMD (/usr/bin/mongodump --out /var/backups/mongobackups/`date +")
Nov 11 04:05:01 myservername CRON[31296]: (CRON) info (No MTA installed, discarding output)
Nov 11 04:07:01 myservername CRON[31306]: (root) CMD ( test -x /etc/cron.daily/popularity-contest && /etc/cron.daily/popularity-contest --crond)
Nov 11 04:17:01 myservername CRON[31325]: (root) CMD ( cd/&& run-parts --report /etc/cron.hourly)
Nov 11 04:30:01 myservername CRON[31353]: (root) CMD (/opt/letsencrypt/certbot-auto renew > /var/log/log3.log)
Nov 11 04:30:04 myservername CRON[31352]: (CRON) info (No MTA installed, discarding output)
Nov 11 04:35:01 myservername CRON[31393]: (root) CMD (/etc/init.d/nginx reload > /var/log/log4.log)
Nov 11 04:40:01 myservername CRON[31420]: (root) CMD (/bin/cat /etc/letsencrypt/archive/<mydomanin>/{fullchain1.pem,privkey1.pem} | /usr/bin/tee /etc/ssl/mongo.pem > /var/log/log5.log)
Nov 11 04:40:01 myservername CRON[31419]: (CRON) info (No MTA installed, discarding output)
如果我沒看錯的錯誤「未安裝任何MTA,丟棄輸出」,因爲它涉及到通過發送輸出是沒有問題的電子郵件,我是對的嗎?
所以,任何人都可以告訴我我的crontab有什麼問題?
非常感謝!