是不是经常遇到这种情况?跑着 Linux 服务器,晚上忘了关机,一整夜空转费电;或者虚拟机测试完,第二天才想起没关,占着资源。其实用对定时关机命令,这些问题都能解决。今天就把 Linux 定时关机的各种用法讲透,从新手入门到服务器场景都能用。
一、基础命令:新手入门先学这两个
1. shutdown 命令:最常用的定时关机方式
shutdown 是 Linux 里最基础的关机命令,定时功能也好用。比如你想让电脑 30 分钟后关机,直接输入shutdown -h +30
就行,屏幕会显示 “系统将在 30 分钟后关机” 的提示。要是想指定具体时间,比如晚上 10 点关机,就用shutdown -h 22:00
。
这里有个小细节,shutdown 命令其实是给系统发送一个关机信号,还会通知所有登录的用户,适合服务器这种多用户场景。我们在使用的时候,最好提前几分钟设置,给用户留点保存工作的时间。
2. at 命令:一次性定时关机更灵活
at 命令适合只需要一次定时关机的情况。比如临时下载大文件,预计 2 小时后完成,想让它下载完自动关机,就输入at 2 hours
,然后回车输入shutdown -h now
,再按 Ctrl+D 结束。这样系统就会记住 2 小时后执行关机。
那 at 和 shutdown 的区别在哪?简单说,shutdown 适合固定时间或倒计时,at 适合更灵活的一次性任务。新手刚开始可能觉得 at 有点绕,但用两次就熟了。
二、取消定时关机:设错了或临时变卦怎么办?
刚设置完定时关机,突然发现还要用电脑,该怎么取消?
如果是用 shutdown 设置的,直接输入shutdown -c
就行,系统会提示 “定时关机已取消”。
要是用 at 设置的,得先输入atq
查看任务编号,比如看到编号是 5,再输入atrm 5
就能删掉这个任务。
有次我给服务器设了凌晨 3 点关机,结果临时要处理数据,就是用shutdown -c
取消的,特别方便。记住这两个命令,不怕设错了麻烦。
三、服务器场景:批量设置和周期任务怎么弄?
服务器总不能天天手动设定时关机吧?这时候就得用 crontab 命令,它能设置周期性的定时任务。
1. 每天固定时间关机
比如想让服务器每天凌晨 2 点自动关机,输入crontab -e
打开编辑器,添加一行:0 2 * * * /sbin/shutdown -h now
保存退出就行。这里的0 2 * * *
表示每天凌晨 2 点,后面跟的是关机命令。
2. 工作日定时关机,周末不关机
有些服务器周末需要运行,那就设置周一到周五关机:0 23 * * 1-5 /sbin/shutdown -h now
这里的1-5
代表周一到周五,是不是很灵活?
服务器用 crontab 有个好处,就算重启也不会失效,任务会一直保存在系统里。但要注意,设置前一定要确保服务器上的任务都能自动保存,不然突然关机可能丢数据。
四、虚拟机场景:和物理机有啥不一样?
虚拟机的定时关机命令和物理机差不多,但有两个点要注意:
1. 别影响宿主机
比如在 VMware 里的 Linux 虚拟机,用shutdown -h +10
定时关机,只会关虚拟机本身,不会影响宿主机,这点可以放心。
2. 配合快照更安全
虚拟机定时关机前,最好自动打个快照。可以写个简单的脚本,先执行virsh snapshot-create 虚拟机名
,再执行关机命令,用 crontab 定时运行这个脚本,既省心又安全。
之前帮朋友设置虚拟机定时任务,他总担心关机前没保存状态,加了快照后就再也没出过问题。
其实 Linux 定时关机命令不算复杂,关键是根据场景选对工具。新手从 shutdown 和 at 学起,熟悉了再用 crontab 做周期任务。服务器场景一定要注意数据安全,虚拟机场景多考虑和宿主机的配合。记住这些命令,不仅能省电费,还能减少人工操作的麻烦。希望这些能帮到你,有不懂的地方可以留言问我。