每日服务器重启cron?

Pra*_*mar 18 server cron

我想创建一个在指定时间每天执行的 cron 作业并重新启动 ubuntu 服务器。

我尝试reboot仅在 cron 中添加,但它不起作用,而当我尝试从 CLI 执行它时它起作用。

请告知,我应该在 cron 中添加什么命令,以便它每天在特定时间重新启动服务器。

Cli*_*ten 31

您需要运行以下命令:

/sbin/shutdown -r now
Run Code Online (Sandbox Code Playgroud)

与根 pirviliges。这样做的方法是使用 root 的 crontab,而不是您的用户 crontab。一个sudo常用的crontab命令之前做的是:

sudo crontab -e
Run Code Online (Sandbox Code Playgroud)

提示:您可以将 shell 的标准编辑器切换为诸如crontabvisudowith 之类的内容sudo update-alternatives --config editor,然后选择您选择的编辑器。

编辑 crontab 您应该将以下行添加到您的文件中:

# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command  

@daily root /sbin/shutdown -r now
Run Code Online (Sandbox Code Playgroud)

这里的“@daily”是每天午夜的快捷方式(相当于“0 0 * * *”)。顺便说一句 - 你为什么要每天重启?

编辑 - 请参阅https://help.ubuntu.com/community/CronHowto了解以下内容:“Crontab 命令通常存储在属于您的用户帐户的 crontab 文件中(并使用您用户的权限级别执行)。如果您想定期运行需要管理权限的命令,编辑根 crontab 文件:sudo crontab -e"

编辑 - 感谢@charlesbridge 的评论 - 编辑答案以包含完整路径

  • 以下命令具有相同的效果:`/sbin/reboot`。 (3认同)
  • 使用 cron,使用完整路径总是最安全的:`/sbin/shutdown -r` (2认同)
  • 时间日期设置和命令之间的根做什么?现在不应该是 root 用户 cronfile 中的 @daily /sbin/shutdown -r 吗?TIA (2认同)