我每天都有很少的cronjobs在星期五运行.在节假日期间,我会手动关闭它们,以便它在那天不运行并在第二天转回去.
有没有办法使用脚本自动执行此操作
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)
等等