如何配置Ubuntu在给定时间每天重启?


11

使用终端或bash文件,如何配置Ubuntu每天(例如)凌晨3点重新启动?

换句话说,我想安排通过终端自动重启。

我还没有在Google或AskUbuntu上找到与此相关的任何东西,而且我一般对Ubuntu还是陌生的(刚刚得到了我的新Raspberry Pi)。

Answers:


13

使用crontab -e命令编辑crontab条目(默认情况下,这将编辑当前登录用户crontab)并添加以下行:

0 3 * * * echo $PASSWD | sudo -S reboot
#change $PASSWD with your password

保存文件,然后使用检查新的crontab条目crontab -l

如果只想使用:

0 3 * * * sudo reboot

作为crontab,这将无法正常工作,您应该查看这篇文章以了解如何使其正常工作。

或者,只需reboot使用sudo crontab -e以下命令将crontab添加到root用户的crontab文件中即可提供命令的完整路径:

0 3 * * * /sbin/reboot

您不能将其放在root的crontab中,也不必太担心echo $PASSWD

我不知道 这是cron的错误还是正常?我的意思是,如果您以root用户身份编辑crontab,则仅当您以root用户身份登录时才能执行作业。我认为这是错误的。(或者应该是)。
NickTux

@RaduRădeanu事实并非如此。根cronjobs将运行,而无需以根用户身份登录。
OrangeTux

@OrangeTux您说对了,对不起,我说那是因为我测试时没有给出完整的reboot命令路径。否则将无法正常工作。查看我的新修改。
RaduRădeanu13年

@NikTh我错了,请参阅上面的评论
RaduRădeanu'13

1

请注意,将明文密码放在文本文件中不是一个好主意,因此最好从一开始就以root用户身份运行此作业。通常,我不想通过crontab命令编辑root的crontab ,而将条目/var/spool/cron/crontabs保留在一个有点神秘的位置,我宁愿在中明确输入它们/etc/cron.d。cron.d中的条目作为系统crontab条目运行,被视为配置文件,因此它们应在系统重新引导,更新和升级后仍然存在,并且您可以显式指定正在运行的用户:

echo "0 3 * * * root /sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.d/reboot-at-3-am

如果您不需要特定时间,而只是希望系统每天重新启动一次,则在其中添加可执行文件或脚本 /etc/cron.daily,它将在预定时间(默认为系统时间上午6:25)自动运行:

echo "/sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.daily/reboot-me

请注意,我设置了5分钟警告,而不是仅在没有警告的情况下重新引导系统,因此,如果有人登录,他们就有机会保存自己的工作,甚至可以通过中断关机sudo shutdown -c,而不用拉扯系统。从他们下面。如果您想发出更充分的警告,则可以相应地进行调整(例如,shutdown -h 60在2:00 AM 使用并运行该命令,并且会向用户提供慷慨的1小时警告)。

这是基于我过去的经验;在某些时候,当crontab条目运行时,您登录工作,如果它重启而没有警告,您将是一只可悲的熊猫。


-1

为什么要-或要这样做?尽管这很简单,但是几乎可以肯定有一个更好的Linux解决方案,它不需要重启。与Windows不同,基于Linux的OS除了内核升级外,几乎不需要重启任何东西。

如果您解释您要达到的目标,我们可能会为您提供更好的帮助。


3
他想每晚重新启动计算机,这样
Michael Butler
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.