Cron 每小时作业一次(周五特定时间范围除外)

Cron 每小时作业一次(周五特定时间范围除外)

我希望我的 cron 作业每小时、每天运行一次,周五除外,周五我根本不希望它在凌晨 2 点到上午 9 点之间运行(但在此时间范围之外每小时运行一次)。理想情况下,我希望将其放在一行/一个 cron 作业中。到目前为止我有两行(我不能 100% 确定它是正确的):

0 0 * * 0,1,2,3,4,6 script.sh
0 0-1,10-23 * * 5 script.sh

答案1

格式似乎是正确的(在上面的评论中应用更正后)。将所有内容放在一行中是否有一些特殊限制?如果您需要将所有内容都放在一行中,我建议更改 shell 脚本以避免星期五凌晨 2 点至上午 9 点,例如

#!/bin/bash
# 该代码未经测试
# 周五凌晨 2 点至 9 点跳过
# 什么是非运行时间?
开始时间=2
结束时间=9

# 获取当前星期几
DAY=$(date +"%u") # 1-星期一,因此 5-星期五
# 和小时
小时=$(日期+"%H")

if [ "$DAY" -eq 5 -a "$HOUR" -ge "$STARTTIME" -a "$HOUR" -le "$ENDTIME" ]
然后
   # 结束执行
   出口0

希望有助于解决问题!

坦率

相关内容