Cron 作业在错误的日期执行

Cron 作业在错误的日期执行

在 Centos 7 服务器上的 root 用户 crontab 中,我有以下内容:

30 4 1-7 * * test $(date +\%u) -eq 7 && /usr/bin/needs-restarting -r || /usr/sbin/shutdown -r

它应该在每月 1 日到 7 日之间的每天 4:30 运行,然后测试星期几是否是星期日,然后执行下一个命令来检查是否需要重新启动,如果需要则重新启动是。然而,我的服务器今天(2017 年 8 月 1 日)重新启动,这是一个星期二。谁能解释为什么?

答案1

在 中,当或以非 0 值退出时,将执行a && b || c命令。因此,当为 false 时,服务器将重新启动。cabtest $(date +\%u) -eq 7

根据其名称,/usr/bin/needs-restarting当服务器需要重新启动时可能会返回 0。您确定不应该这样吗a && b && c

否则,尝试一下a && { b || c; }

相关内容