Linux 如何设置自动重启?超简单教程
在实际运维场景中,我们可能会遇到以下情况:
- 某些服务长时间运行后出现内存泄漏;
- 某些旧系统无法设置进程级重启机制;
- 需要在非业务高峰期进行例行重启。
这时,设置 自动重启 就是一种简单且有效的运维手段。
1. 设置定时重启(推荐)
使用crontab设置定时重启,适用于 固定时间重启服务器。
使用 root 用户编辑定时任务:
crontab -e
添加以下内容:
# 每周六凌晨3点自动重启
0 3 * * 6 /sbin/shutdown -r now
说明:
- /sbin/shutdown -r now 表示立即重启;
- 确保命令路径正确(有的系统使用 /usr/sbin/shutdown);
- 使用 crontab -l 可查看当前定时任务。
2. 一次性延时重启(临时)
可以通过 at 命令设置延时一次性重启,适合临时性维护。
echo "reboot" | at now + 30 minutes
安装 at 工具:如果没有安装,需要先安装一下
# Ubuntu/Debian
sudo apt install at
# RHEL/CentOS
sudo yum install at
启动 atd 服务:
systemctl enable atd
systemctl start atd
3. 写脚本 + 定时触发
如果你希望写一个自动重启脚本,可将其拓展为带日志、健康检查、告警通知等逻辑的脚本。
auto_reboot.sh:
#!/bin/bash
LOG_FILE="/var/log/auto_reboot.log"
echo "$(date "+%Y-%m-%d %H:%M:%S") 自动重启执行" >> "$LOG_FILE"
/sbin/shutdown -r now
设置执行权限:
chmod +x /opt/scripts/auto_reboot.sh
设置 crontab:
sudo crontab -e
添加定时任务,例如每周六凌晨 3点重启:
0 3 * * 6 /opt/scripts/auto_reboot.sh
选择合适的方式,合理设置时间,结合日志与监控,就能让自动重启变得安全可控。
【温馨提示】:在生产环境中,重启是很慎重的事情,如非特殊需求,不要频繁重启,应优先优化服务自身的稳定性和内存使用。