2013-02-10 111 views
0

我有一個在CentOS上運行的VPS上運行的Magento安裝。我一直在嘗試使用此處的腳本實現備份解決方案:https://github.com/zertrin。它運行良好,我的下一步是自動化它。儘管我所有的努力克倫工作沒有運行。以下是我在/ etc/crontab中已經得到:CentOS上的Crontab配置

* 20 * * * root echo "Cron Worked $(date)" >> /tmp/cronworked.txt 
# 
* 16 * * 1-6 root /root/duplicity-backup.sh -c /etc/duplicity-backup.conf -b 
# 
* 4 * * 7 root /root/duplicity-backup.sh -c /etc/duplicity-backup.conf -f 
# 
* 20 * * 7 root /root/duplicity-backup.sh -c /etc/duplicity-backup.conf -n 
# 
* 20 * * * root echo "Cron Worked $(date)" >> /tmp/cronworked3.txt 

我的兩個測試cron作業(第一個和最後一個),做工精細,但不是在中間的命令。如果我將它們作爲獨立命令發佈,但由於某些原因不作爲Cron作業,它們可以很好地工作。

任何人都可以指導我弄清楚這不起作用嗎?

回答

0

有幾件事情你可以檢查:

  1. 確保/root/duplicity-backup.sh是可執行的

  2. 如果你有一個本地郵件服務器配置,您應該收到有關的cron的輸出電子郵件就業機會,這可能會告訴你什麼錯誤

  3. 如果不從cron作業接收電子郵件,然後重定向stdout和stderr到一個文件中。這應該有助於搞清楚什麼地方出了錯

  4. 添加bash在腳本名稱前面,以確保它與bash運行,而不是別的東西,不知何故,像這樣:

    * 4 * * 7 root bash /root/duplicity-backup.sh -c /etc/duplicity-backup.conf -f 
    

具有腳本輸出和錯誤消息應該有所幫助。如果他們不把它們粘貼在這裏。

+0

我嘗試了所有那些沒有太多運氣。首先它不是可執行的,所以我讓它成爲可執行文件並嘗試了,但它不起作用。然後我在它前面添加了bash,它也不起作用。我不知道如何將stderr和stdout重定向到一個文件,所以我做了一些搜索並將其添加到cron作業中。 '* 21 * * 1-6 root /root/duplicity-backup.sh -c /etc/duplicity-backup.conf -b >> /www/logs/crontab.shop.log 2>&1'但我不能看到它生成一個日誌文件。我可以從cron日誌文件中複製日誌。剛剛意識到stderr和stdout的日誌文件位置是錯誤的。剛糾正它。 – Pradeep 2013-02-14 22:16:35

+0

我設法將錯誤記錄到該日誌文件,現在它100%確定它與Cron無關。我收到的信息是這樣的,但不確定它是否可以幫助我的區域:'GPGError:GPG失敗,請參閱以下日誌: =====開始GnuPG日誌===== gpg :使用RSA密鑰加密,ID 40416B44 gpg:解密失敗:沒有密鑰 =====結束GnuPG日誌=====' – Pradeep 2013-02-16 11:17:22

+0

不知道如果我可以幫助你進一步,因爲我不太熟悉GnuPG也不是這個備份工具。我可以說的是,當你在shell中運行腳本並運行在cron中時,環境中顯然有些不同。如果我不得不猜測它與你的gpg-agent有關。當您在shell中時,祕密密鑰將加載到代理中,但不會在您在cron中運行時或在cron中無法訪問代理時加載。也許你需要在調用腳本時設置一些環境變量,如GPG_AGENT_INFO和GPG_TTY – janos 2013-02-16 13:12:07