在 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 时,服务器将重新启动。c
a
b
test $(date +\%u) -eq 7
根据其名称,/usr/bin/needs-restarting
当服务器需要重新启动时可能会返回 0。您确定不应该这样吗a && b && c
?
否则,尝试一下a && { b || c; }