微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 使用crontab和/etc/cron.hourly,daily,weekly之间的区别

我有一个预定的脚本,它对我们的Subversion存储库进行每小时svnsync备份.我从root crontab中的一个条目运行它没有问题,但我决定从/etc/cron.hourly运行它来代替额外的可见性(因为我们的一个工程师意外删除了crontab,因为他认为“crontab -r“意思是”读取crontab ;-))

cron.hourly脚本中的svnsync命令都失败,并显示一条消息,说明需要接受SVN存储库的SSL证书(这是用户第一次访问SVN存储库时以交互方式获得的消息,但是一旦证书I接受了消息不再出现).

所以在我看来,当从cron.hourly运行时,脚本在不同的用户环境下执行,而不是通过root crontab运行时.有人可以解释这个区别吗?

更新:我应该提到我的发行版,我在CentOS 5.1上使用了anacron.

更新2:感谢目前为止的建议;我认为这更像是一个颠覆问题.我总是尝试将我的环境封装到我的脚本中,但问题在于我不确定它是什么(或缺少)环境使得SVN要求在我运行脚本时接受SSL证书cron.hourly.我猜它与run-parts脚本的执行方式有关.

解决方法

您想使用’–config-dir’选项让它知道在哪里找到接受的证书(例如认情况下为〜/ .subversion).

也就是说,我几乎可以肯定你最好从hooks / post-commit脚本调用svnsync,而不是suggested elsewhere.那么你的镜像始终是同步的,而不是与你的主人在一小时前的位置同步.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐