0

在 crontab 上设置了下面的行。但不是验证当天。当我删除星期几时正确执行。有什么建议吗?

# uname -a
Linux server 2.6.32-358.14.1.el6.x86_64 #1 SMP Tue Jul 16 23:51:20 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

# cat /etc/issue
Red Hat Enterprise Linux Server release 6.4 (Santiago)
Kernel \r on an \m

# date
Mon Mar  2 08:50:19 BRT 2015

# crontab -l
* * 1 3 1 echo "teste"

# tail -f /var/log/cron
Mar  2 08:38:01 server CROND[10509]: (root) CMD (echo "teste")
4

2 回答 2

0

如果无法在 crontab 中定义时间间隔,您可以在脚本本身中使用日期/时间检查。您可以强制 crontab 在每个 3 月 2 日运行脚本,并检查脚本内部是否确实是星期一。如果没有,您可以退出脚本。

例如。

[[ $( date +%u ) -ne 1 ]] && exit

如果当天不是星期一,请退出。

于 2015-03-02T13:28:37.983 回答
0

关于 crontab "...有一个例外:如果 "day of month" 和 "day of week" 都受到限制(不是 "*"),那么 "day of month" 字段 (3)"day of week" 字段 (5) 必须与当前日期匹配。..."

在每个月的第一个星期一运行 cron 作业中也说过类似的问题?以及如何在每月的第一个工作日运行 cron 作业

所以,在 crontab 集中:

* * 1 3 * [ "$(date '+\%a')" == "Sun" ] && /bin/mkdir /tmp/cronsilvioteste

于 2015-03-02T14:16:31.993 回答