下面的 crontab 可以吗?
0 4 * * * /sbin/sudo shutdown -r now
我想从 crontab 运行单个命令 sudo shutdown -r now,而不必将其放入 bash 脚本中。
答案1
通常,sudo
在crontab
.该程序在受限环境(尤其是非常有限且无控制的 tty)cron
中运行命令。PATH
虽然您可能可以通过安装严重的安全漏洞来实现此目的,但实现您可能想要的效果的正确方法是将命令放入shutdown -r now
root 的crontab
.
显然,您不会期望在凌晨 4 点在相关计算机上执行任何操作,但作为在极少数情况下执行此操作的预防措施,您可能需要给命令shutdown
一些时间和真实的消息。然后,如果您在那里,您可以在该时间间隔内进行清理或中止关闭。当你花了半个小时编辑一些东西并且没有机会保存它之后,就出现了这样的东西,真是太遗憾了。
答案2
Ekhm 是的,阅读精彩的手册吗?
从man crontab
The sixth field of a line in a crontab entry is a string that shall be executed by sh at the specified times. A
<percent-sign> character in this field shall be translated to a <newline>. Any character preceded by a <backslash>
(including the '%') shall cause that character to be treated literally. Only the first line (up to a '%' or end-of-
line) of the command field shall be executed by the command interpreter. The other lines shall be made available to
the command as standard input.
尽管我会小心使用 PATH,但我会包含完整路径/usr/bin/shutdown
(可能需要更改/etc/sudoers
)。