Linux 如何設(shè)置自動重啟?超簡單教程
在實(shí)際運(yùn)維場景中,我們可能會遇到以下情況:
- 某些服務(wù)長時間運(yùn)行后出現(xiàn)內(nèi)存泄漏;
- 某些舊系統(tǒng)無法設(shè)置進(jìn)程級重啟機(jī)制;
- 需要在非業(yè)務(wù)高峰期進(jìn)行例行重啟。
這時,設(shè)置 自動重啟 就是一種簡單且有效的運(yùn)維手段。
1. 設(shè)置定時重啟(推薦)
使用crontab設(shè)置定時重啟,適用于 固定時間重啟服務(wù)器。
使用 root 用戶編輯定時任務(wù):
crontab -e
添加以下內(nèi)容:
# 每周六凌晨3點(diǎn)自動重啟
0 3 * * 6 /sbin/shutdown -r now
說明:
- /sbin/shutdown -r now 表示立即重啟;
- 確保命令路徑正確(有的系統(tǒng)使用 /usr/sbin/shutdown);
- 使用 crontab -l 可查看當(dāng)前定時任務(wù)。
2. 一次性延時重啟(臨時)
可以通過 at 命令設(shè)置延時一次性重啟,適合臨時性維護(hù)。
echo "reboot" | at now + 30 minutes
安裝 at 工具:如果沒有安裝,需要先安裝一下
# Ubuntu/Debian
sudo apt install at
# RHEL/CentOS
sudo yum install at
啟動 atd 服務(wù):
systemctl enable atd
systemctl start atd
3. 寫腳本 + 定時觸發(fā)
如果你希望寫一個自動重啟腳本,可將其拓展為帶日志、健康檢查、告警通知等邏輯的腳本。
auto_reboot.sh:
#!/bin/bash
LOG_FILE="/var/log/auto_reboot.log"
echo "$(date "+%Y-%m-%d %H:%M:%S") 自動重啟執(zhí)行" >> "$LOG_FILE"
/sbin/shutdown -r now
設(shè)置執(zhí)行權(quán)限:
chmod +x /opt/scripts/auto_reboot.sh
設(shè)置 crontab:
sudo crontab -e
添加定時任務(wù),例如每周六凌晨 3點(diǎn)重啟:
0 3 * * 6 /opt/scripts/auto_reboot.sh
選擇合適的方式,合理設(shè)置時間,結(jié)合日志與監(jiān)控,就能讓自動重啟變得安全可控。
【溫馨提示】:在生產(chǎn)環(huán)境中,重啟是很慎重的事情,如非特殊需求,不要頻繁重啟,應(yīng)優(yōu)先優(yōu)化服務(wù)自身的穩(wěn)定性和內(nèi)存使用。