2012-10-25 60 views
0

我試圖運行一個cronjob來備份我的數據庫每一天。我已經通過登錄爲root,做crontab -e,然後粘貼在我的命令創建的cronjob:Cron作業在終端工作,不能自行工作

* * * * * /bin/bash -l -c 'cd /var/lib/postgresql && sudo -u postgres pg_dump db_development -O -f "/var/lib/postgresql/backup/db-`date +\%Y-\%m-\%d\\%k:\%M:\%S`.sql"' > /var/lib/postgresql/log/cron.log 2>&1 

這是非常惱人的,因爲該命令完美的作品,如果我在終端運行它,不管是用postgres用戶或根。但是,我從cronjob任務中根本沒有收到任何數據。日誌文件是空白的,並且從不創建備份文件。

我一直在試圖解決這個問題超過10個小時,而且我的想法已經出來。任何幫助表示讚賞。謝謝。

+0

查看http://stackoverflow.com/questions/780072/why-does-my-command-line-not-run-from-cron/780085#780085 – paxdiablo

回答

1

最有可能是環境問題。檢查你的shell中的任何數據庫環境設置。

您也可以將您的cron命令行包裝在腳本中(並從cron調用腳本)。然後你可以最初讓腳本轉儲環境(這樣你就可以看到缺少的東西),最終讓它設置正確的環境。變量,以便它工作。

+0

確認,應該點擊重新加載..:P – favoretti

0

雖然您可能在那裏遇到環境問題,但如此長的命令可能最好是放在從cron調用的單獨腳本中。