目前,我正在通过输入crontab -e
来编辑我的生产服务器的crons。
我想将我的crontab定义存储在我的项目中,并让我的系统从那里加载它们。
我有没有办法设置服务器现有的crontabs指向这样的包含?
IncludeOtherCrontab /path/to/my/project/project.crontab
我的系统是CentOS版本5.4(最终版)
答案 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等安装程序)复制文件,也可以只使用符号链接到安装目录中的文件。