在我的项目中存储crontab文件

时间:2010-03-02 23:50:56

标签: cron

目前,我正在通过输入crontab -e来编辑我的生产服务器的crons。 我想将我的crontab定义存储在我的项目中,并让我的系统从那里加载它们。

我有没有办法设置服务器现有的crontabs指向这样的包含?

IncludeOtherCrontab /path/to/my/project/project.crontab

我的系统是CentOS版本5.4(最终版)

3 个答案:

答案 0 :(得分:2)


我不知道您是否可以在基本crontab文件中包含其他文件,但也许您可以在crontab中重新加载/更改其内容?

比如说,每隔5分钟,cron会执行你的bash脚本,它会读取你的'project.crontab'并将它附加到你的crontab文件中。

答案 1 :(得分:2)

要以便携式(即不使用/etc/cron.d)执行此操作,假设您的部署脚本必须与第三方crontab条目共存,前提是您的部署脚本可以在目标节点上执行命令,不只是上传文件:

test -f project.crontab && { { crontab -u user -l | awk '/^#BEGIN PROJECT SECTION/{hide=1;next}/^#END PROJECT SECTION/{hide=0;next}!hide{print}' ; echo '#BEGIN PROJECT SECTION' ; cat project.crontab ; echo '#END PROJECT SECTION' ; } | crontab -u user - ; }

以上验证您的项目特定的crontab部分是否存在,从给定用户的crontab中过滤它(如果已经存在,否则不执行任何操作),附加项目部分,然后重新加载该批次。

crontab -u user -将所有项目特定的crontab条目添加到user的crontab文件中。

答案 2 :(得分:0)

最简单的方法是将crontab条目放入/etc/cron.d/下的文件中。看一下那里的一些现有文件,看看语法。您可以手动(或通过rpm等安装程序)复制文件,也可以只使用符号链接到安装目录中的文件。