使用FreeBSD 9,我想知道什么是将/ etc / crontab分成几个文件的好方法。
例如,我想将所有postfix相关的作业放在/etc/cron.d/postfix中,所有与logrotate相关的作业放在/etc/cron.d/logrotate等等。
当然,我可以定期使用,但似乎所有的工作将在同一时间执行。
任何想法?
根据man 1 cron,它search/ var / cron / tabs / <usernames>和/ etc / crontab。
编辑1:为什么我可能想要尝试这样做,如voretaq7的答案中所述。
一些公司使用贫穷的自制scm ,没有cron插件,也没有augeas工具。
编写一些安装了一些第三方软件的脚本:/ etc / crontab结尾处的附加作业很脏。
请注意,/etc/rc.conf和/ usr / local / etc / sudoers已经有了这个function,所以我想知道是否有一个“FreeBSD的方式”来做这个计划的工作。
我实际上比cronjobs更喜欢周期性的脚本,完全是因为周期性地按顺序执行所有的脚本。 您还可以添加更多的周期性模式,例如,将脚本放到/etc/periodic/8hourly并添加一个crontab条目0 */8 * * * periodic 8hourly运行它们。
对于具有不同用户ID的子系统,您可以添加用户特定的crontab文件(使用crontab -u $user -e ,文件最终位于/var/cron/tabs/$user ) – 但恕我直言,这比一个中央文件更难以维护。
FreeBSD的cron是一个传统的Vixie cron–它不支持你所要求的。
坦率地说,我不明白为什么你会想要它:你为什么要分散你的crontab成一堆文件,在哪里你不能清楚地了解什么时候运行?
我总是发现按照周期/频率(每小时,每天,每周,每月,每年)排列的传统crontab非常容易阅读,并且在向计划中添加新东西时容易打包。
如果你想通过function单元打破你的crontab,你也可以这样做 – 只要创build由空格和注释分隔的块。
如果这对于你的用例还不够,你真的想要一个cron.d目录和子文件的Linux风格的cron结构,你可以这样做:只需从ports树( sysutils/anacron )安装anacron并将其configuration为你喜欢。
确保logging你所做的事情 – 在我的职业生涯中遇到了很多FreeBSD系统,而我从来没有遇到过没有运行过标准Vixie cron的系统。 如果您创build的环境是通常做事方式的例外,那么您希望每个人都知道为什么要更改它,以及如何处理这些系统。