使用终端或bash文件,如何配置Ubuntu每天重启(例如)凌晨3点?
换句话说,我想通过终端安排自动重启。
一、准备
1、sudo apt-get install cron
2、sudo service cron start
3、在root下输入:crontab -e
3、可能会提示你:
no crontab for root - using an empty one
然后会叫你“Select a editor …”下面有几个选项,就是叫你选择编辑器。(选vim.tiny)
或直接进入编辑页面。
4、进入crontab编辑页面之后就直接"shift+:",然后输入wq保存即可。然后一个新的crontab就生成了!
二、编写crontab条目
使用crontab -e命令编辑crontab条目(默认情况下,这将编辑当前登录用户crontab)并添加以下行:
0 3 * * * echo $PASSWD | sudo -S reboot #change $PASSWD with your
password
保存文件并使用
crontab -l
检查新的crontab条目。
2.
如果您只想使用:
0 3 * * * sudo reboot
作为crontab,这不能正常工作
3、
或者,简单地将crontab添加到root用户的crontab文件中,使用
sudo crontab -e
提供reboot命令的完整路径:
0 3 * * * /sbin/reboot
注意:如果使用 crontab -e(没有sudo),则不能成功。
三、优化
请注意,将明文密码放在文本文件中并不是一个好主意,因此最好让这个作业从一开始就以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中断sudo shutdown -c ,而不是将系统从它们下面拉下来。 如果你想提供更充足的警告,你可以相应地调整这些(例如,使用shutdown -h 60并在凌晨2:00运行命令,你会给用户一个1小时的警告)。
这是基于我过去的经验; 在某些时候你将在crontab条目运行时登录工作,如果它只是在没有警告的情况下重新启动你将会是一个非常悲伤的pandas。