今天分享一下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
选择合适的方式,合理设置时间,结合日志与监控,就能让自动重启变得安全可控。
【温馨提示】:在生产环境中,重启是很慎重的事情,如非特殊需求,不要频繁重启,应优先优化服务自身的稳定性和内存使用。
往期精彩文章:
文章转载自运维李哥不背锅,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




