我已经安装了迪维什用于一些备份。我已经初始化了一个保管库(主机)。现在我使用以下脚本来运行它:
#!/bin/sh
/sbin/dirvish-expire --quiet && /sbin/dirvish-runall --quiet
rc=$?
exit $rc
问题是我找不到更多的方法来解决它。由于某种原因,第二个命令dirvish-runall --quiet
在作为 cron 作业运行时以状态 1 退出。当它处于交互模式时,它可以正常工作,没有任何问题。
你能帮忙吗?
答案1
@TomHunt 在他的评论中指出了这个问题,并且他的答案值得赞扬。我只是想扩展他的观点,以便将来的 cron 作业问题可以更轻松地解决。
我的建议是捕获您当前的(功能)环境以及 cron 作业脚本的环境,然后比较两者以查看缺少的内容。请记住,cron 是在引导时启动的,并且永远不会读取任何个人 shell 环境文件(~/.bashrc、~/.bash_profile 或从那里加载的任何其他文件)。
set | sort > /tmp/set.out
- 暂时添加
set | sort > /tmp/cron-set.out
到您的 cron 作业的 shell 脚本中 diff /tmp/cron-set.out /tmp/set.out
- 找到缺少的环境变量并将它们添加到 cron 作业的 shell 脚本中(同时删除
set
上面的临时添加)。