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.那么你的镜像始终是同步的,而不是与你的主人在一小时前的位置同步.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...