如何使用脚本暂时关闭某些unix cronjobs

Uni*_*e11 7 unix

我每天都有很少的cronjobs在星期五运行.在节假日期间,我会手动关闭它们,以便它在那天不运行并在第二天转回去.

有没有办法使用脚本自动执行此操作

poo*_*lie 8

Ignacio在你的crontab中建议这样的东西:

 31 1 * * *    [ -f /var/run/cron-holiday ] || /usr/local/bin/whatever-command
Run Code Online (Sandbox Code Playgroud)

然后在假期周末开始时,以root身份:

 # touch /var/run/cron-holiday
Run Code Online (Sandbox Code Playgroud)

星期一:

 # rm /var/run/cron-holiday
Run Code Online (Sandbox Code Playgroud)

这很简单,但确实有一个缺点,如果你忘记删除文件,你的cronscripts永远不会再运行,这可能是坏事.

另一种方法是有一个列出假日日期的文件,并执行以下操作:

31 1 * * *   grep -q `date -I` /etc/cron-holidays || whatever-command-here
Run Code Online (Sandbox Code Playgroud)

/ etc/cron-holidays文件包含的行

2011-04-01
2011-12-25
Run Code Online (Sandbox Code Playgroud)

等等


Ign*_*ams 2

让 cron 作业在 下查找标志(文件)/var/run,然后编写一个设置或重置该标志的初始化脚本。