在Linux系统里,要实现每天的定时关机,最直接且可靠的方法就是结合使用
cron
shutdown
要设置Linux每天定时关机,我们主要通过编辑当前用户的
crontab
打开
编辑器: 在终端中输入crontab
。如果你是第一次使用,系统可能会让你选择一个文本编辑器,比如crontab -e
或nano
。我个人习惯用vim
,但对于新手来说,vim
可能更友好一些。nano
-
添加定时关机任务: 在打开的文件末尾,添加一行来定义你的定时关机计划。
任务的格式是:cron
分钟 小时 日期 月份 星期 命令
假设你想让系统每天晚上11点30分关机,你可以这样写:
30 23 * * * /sbin/shutdown -h now
- : 代表分钟,这里是30分。
30
- : 代表小时,这里是23点(即晚上11点)。
23
- : 代表日期的每一天。
*
- : 代表月份的每一个月。
*
- : 代表星期的每一天(周日到周六)。
*
- : 这是要执行的命令。
/sbin/shutdown -h now
是关机命令的完整路径,确保/sbin/shutdown
能找到它。cron
参数表示“halt”(关机),-h
表示立即执行关机。now
如果你希望关机前给一个短暂的警告,比如提前5分钟,但让系统在特定时间点关机,也可以这样写:
这样,在晚上11点25分,系统会发出警告,并在11点30分执行关机。不过,对于每日定时关机,我通常更倾向于直接在指定时间点执行25 23 * * * /sbin/shutdown -h 5 "系统将在5分钟后关机,请保存工作!"
,因为它更简洁明了。shutdown -h now
-
保存并退出: 如果你用
,按nano
保存,然后按Ctrl+O
退出。 如果你用Ctrl+X
,按vim
键,然后输入Esc
并回车保存退出。:wq
服务会自动检测到cron
文件的变化并加载新的任务。至此,你的定时关机任务就设置好了。crontab
设置完定时任务,我们总会有点不确定,它到底有没有生效?这就像你给一个机器人下达指令,总得找个方式确认它是不是真的“听懂了”。
最直接的验证方法就是再次查看你的
crontab
crontab -l
cron
但仅仅存在还不够,我们还需要确认
cron
cron
systemctl status cron
systemctl status cronie
cron
active (running)
再深入一点,如果你想知道
cron
cron
/var/log/syslog
/var/log/messages
journalctl
journalctl -u cron -f
cron
grep CRON /var/log/syslog
我个人在配置这类任务时,通常会先设置一个几分钟后就会触发的测试任务,比如
* * * * * echo "Test cron job executed at $(date)" >> ~/cron_test.log
~/cron_test.log
cron
这三者虽然都能让你的电脑“休息”,但它们的工作原理和适用场景却大相径庭,就像是三种不同的“休息”姿势。
定时关机 (Shutdown): 这是最彻底的休息。系统会关闭所有程序,卸载文件系统,然后切断电源。关机后,电脑不消耗任何电力(除了主板上的微弱电流),再次启动时需要重新加载操作系统,耗时最长。它的优点是能清除内存中的所有状态,给系统一个“干净”的开始,有助于解决一些临时的软件问题,也最节能。对于服务器,或者你每天结束工作后不再需要电脑,关机是最佳选择。
休眠 (Hibernate): 休眠是一种“深度睡眠”。系统会将内存中的所有数据(包括你打开的程序、文档等)保存到硬盘上的一个特殊文件(通常是
swap
待机/睡眠 (Suspend/Sleep): 待机是“浅度睡眠”。系统会进入低功耗状态,大部分硬件(如显示器、硬盘)会停止工作,但内存(RAM)仍然保持通电,以保存你的工作状态。唤醒时几乎是瞬间完成的。它的优点是唤醒速度极快,能让你迅速回到工作状态。缺点是仍然会消耗少量电力,如果长时间待机,电量消耗会比较明显。适合短暂离开电脑,或者晚上不需要关机,第二天早上想立即开始工作的情况。
如何选择?
- 需要每天彻底关闭系统,节省能源,或者解决潜在的系统小问题? 选择定时关机。这通常是服务器、工作站夜间维护或个人电脑的日常操作。
- 需要长时间离开电脑,但又不想丢失当前工作状态,同时要节能? 选择休眠。这在笔记本电脑上尤为常见。
- 只是短暂离开,希望回来能立即继续工作,不介意少量电量消耗? 选择待机/睡眠。
对于本篇文章讨论的“每天定时关机”,显然,我们的目标就是彻底的
shutdown
生活总是充满变数,你可能今天突然需要加班,或者明天要出差,那原定的定时关机任务就得调整一下了。处理这些变动,比你想象的要简单。
临时取消任务: 如果你只是想让某个特定日期的定时关机失效,最简单的方法是编辑你的
crontab
- 再次打开。
crontab -e
- 找到你设置的定时关机那一行。
- 在行首添加一个号,这会将该行注释掉。例如:
#
# 30 23 * * * /sbin/shutdown -h now
- 保存并退出。
这样,该任务就不会在第二天触发了。等你不需要取消的时候,再把号删除即可。
#
永久删除任务: 如果你觉得这个定时关机任务以后都不需要了,可以直接在
crontab -e
修改任务时间: 如果只是想调整关机时间,比如从晚上11点半改为12点,同样是打开
crontab -e
30 23 * * * /sbin/shutdown -h now
00 00 * * * /sbin/shutdown -h now
这里需要特别强调一点:
shutdown
-c
shutdown -h +60 "系统将在60分钟后关机"
shutdown -c
cron
shutdown -h now
shutdown -c
crontab
cron
所以,核心思路就是:
cron
crontab
cron
crontab -e
以上就是如何在Linux中设置每天定时关机?使用cron与shutdown命令的配置步骤的详细内容,更多请关注其它相关文章!
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。