我正在尝试将项目特定的 crontab 配置放入代码存储库,以便在部署时轻松更新所有后端上的 cron 作业。
是否可以将文件包含到 crontab 配置中?例如
* * * * * execsomething /blablabla/blah/
* * * * * onemore /blablabla
@include '/home/user/project/crontab.conf'
答案1
根据您的 cron 守护程序和发行版,/etc 中应该有几个目录,您可以在其中放置包含 cron 作业的文件。
放置在以下目录中的脚本(非 cron 格式的作业)将按指定的时间间隔执行。请注意频率是有保证的,但确切时间它可能无法运行。对于大多数用户来说,这些目录就足够了:
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
放置在以下目录中的 cron 格式的作业(如上面的示例)将在指定时间由 cron 执行。请注意,除了常规条目外,还需要在命令前指定作业的用户。对于软件包和软件分发版,此方法是分发 cron 作业的最佳方式:
/etc/cron.d
cron.d 格式的命令示例:
1 1 * * * root echo "serverfault is awesome" > /dev/null
答案2
据我所知不是;那才是/etc/cron.d
目的。
正如 Boscoe 所指出的,还有/etc/cron.{hourly,daily,weekly,monthly}
目录,但其中的作业只能以 root 身份运行(除非您明确使用/bin/su
更改 EUID)。 中的作业/etc/cron.d
有一个额外的字段,用于指定它们以哪个用户身份运行,而您的问题包含路径的方式/home/user
让我认为您希望这些作业能够以任意用户身份运行。