sBl*_*att 186
我会使用 cron(应该已经安装了):
编辑 crontab:
sudo crontab -e
Run Code Online (Sandbox Code Playgroud)
第一次你可能必须选择你喜欢的编辑器(比如 nano)
插入一行
0 4 * * * /sbin/shutdown -r +5
Run Code Online (Sandbox Code Playgroud)
在底部。解释:
m h dom mon dow command
minute hour dayOfMonth Month dayOfWeek commandToRun
Run Code Online (Sandbox Code Playgroud)
所以这条线
0 4 * * * /sbin/shutdown -r +5
Run Code Online (Sandbox Code Playgroud)
将在每天凌晨 4:05 重新启动您的系统。(凌晨 4:00 + 5 分钟)
Ctrl+ X, Y,Enter应该让你退出 crontab(如果使用 nano)
注意:您可能必须以crontab -eroot身份运行,因为关机需要 root。crontab -e在 /tmp 而不是实际的 crontab 中打开一个文件,以便它可以检查您的新 crontab 是否有错误。如果没有错误,那么您的实际 crontab 将被更新。
Kee*_*ook 17
将此添加到/etc/cron.daily/zz-reboot应该工作:
#!/bin/sh
shutdown -r now
Run Code Online (Sandbox Code Playgroud)
并且sudo chmod a+x /etc/cron.daily/zz-reboot。“zz”前缀将强制它在该目录中的所有其他脚本中最后运行。检查/etc/crontab一天中实际发生的时间:
grep daily /etc/crontab | awk '{print $2 ":" $1}'
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,那么“常规”cron 条目也可以工作,通过 sudo crontab -e
MINUTE HOUR * * * shutdown -r now
Run Code Online (Sandbox Code Playgroud)
最后,如果您只想进行一次性重启,您可以使用at:
echo "shutdown -r now" | sudo at 04:30
Run Code Online (Sandbox Code Playgroud)
小智 6
我已经在工作中使用 cronjobs 大约一个月了,并安排断电和重新启动。这很简单。我知道这是大约 5 年前问过的问题,但如果有人仍然有问题,你可以使用这个方法,你就会被设置。
打开终端(ctrl+T)
sudo nano /etc/crontab
Run Code Online (Sandbox Code Playgroud)
一直滚动到底部并输入以下命令
00 6 * * * root reboot
Run Code Online (Sandbox Code Playgroud)
设置为每天早上 6 点重新启动,然后按 Enter
如果您想安排每天晚上 11 点断电,您可以输入
00 23 * * * root poweroff
Run Code Online (Sandbox Code Playgroud)
我仍然需要弄清楚如何在机器停机时使用 cronjob 启动机器。一旦我弄清楚,我就会编辑这个答案。
PS这是我第一次在任何表格上发布答案;希望它可以帮助别人!:D
小智 6
这是一个较旧的问题,但它作为搜索结果出现,并且不包含有关 systemd 的任何信息,因此我将添加一个有关如何使用 systemd 进行计划重启的示例。示例中的文件名和单元描述是任意选择的并且可以更改。
添加重新启动系统的服务单元。为此,请创建一个新文件并向/etc/systemd/system/sched-reboot.service其中添加必要的配置。以下服务配置将在启动时通过 systemctl 强制重新启动。
[Unit]
Description=Scheduled Reboot
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl --force reboot
Run Code Online (Sandbox Code Playgroud)
添加一个计时器,它将按计划启动重新启动服务。在 中创建一个新文件/etc/systemd/system/sched-reboot.timer。以下计时器配置将在每天凌晨 4 点运行重新启动服务
[Unit]
Description=Reboot Scheduling
[Timer]
OnCalendar=*-*-* 4:00:00
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
(可选)运行systemd-analyze verify /etc/systemd/system/sched-reboot.*以检查配置文件中是否有错误。如果返回为空,则文件是有序的。
sudo systemctl enable sched-reboot.timer通过运行和来启用并启动计时器sudo systemctl start sched-reboot.timer。
(可选)运行systemctl list-timers以查看所有活动计时器及其下一个和最后一个启动信息。
有关计时器和设置日历事件的语法(如OnCalendar示例中所示)的更多信息,请查看ArchWiki 关于计时器的部分