2013-02-10 53 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