2025年07月24日/ 浏览 60
作为Linux系统管理员,我经常遇到这样的场景:下班前需要让服务器完成耗时运算任务后自动关机;或是家庭NAS需要在凌晨进行数据备份后关闭以节省能耗。掌握定时关机技术不仅能提升工作效率,更能实现智能化设备管理。
bash
sudo shutdown -h now # 立即关机
这个经典命令中:
– -h(halt)代表停机操作
– now表示立即执行,可替换为具体时间
bash
sudo shutdown -h 23:30 "System will shutdown at 23:30"
当我在办公室使用这个命令时,所有登录用户都会收到关机提醒,避免数据丢失。时间格式支持:
– 24小时制(23:30)
– 相对时间(+90表示90分钟后)
– 特定日期(2024-12-31 23:59)
bash
sudo shutdown -r +30 "系统将在30分钟后重启" # -r表示重启
sudo shutdown -c # 取消已计划的关机任务
bash
echo "shutdown -h now" | at 02:00 2024-12-31
atq # 查看待执行任务
atrm 3 # 删除编号3的任务
适合临时性任务,比如我在处理大数据导出时,预估3小时后完成,就可以用:
bash
echo "shutdown -h" | at now +3 hours
bash
crontab -e
0 3 * * * /sbin/shutdown -h now
我为企业服务器配置的典型案例:bash
30 22 * * 1-5 root /sbin/shutdown -h +5
对于桌面用户,可以安装gnome-schedule:
bash
sudo apt install gnome-schedule
启动后选择”关机”操作,设置具体时间点或周期性计划,适合不熟悉命令行的普通用户。
问题1:关机命令无效?
– 检查sudo权限:sudo -l
– 查看系统日志:journalctl -u systemd-shutdownd
问题2:如何远程关机?
通过SSH执行:
bash
ssh user@server "echo 'password' | sudo -S shutdown -h 22:00"
安全建议:
1. 重要服务器建议改用wall命令提前广播通知
2. 生产环境建议先测试shutdown -k(仅发送警告不真关机)
bash
sensors | grep -q "80°C" && shutdown -h nowbash
df -h | grep "/$" | awk '{print $5}' | cut -d'%' -f1 |
xargs -I {} [ {} -gt 90 ] && shutdown -h +10掌握Linux定时关机看似简单,实则蕴含丰富的系统管理哲学。从基本的shutdown到复杂的crontab集成,每种方法都有其适用场景。建议从简单命令开始,逐步尝试自动化脚本,最终实现完全自主的系统电源管理方案。