温馨提示×

Linux Trigger:怎样进行系统升级和维护

小樊
35
2025-12-25 04:50:22
栏目: 智能运维

Linux 系统升级与维护实操手册

一 升级前的准备与风险控制

  • 备份关键数据:优先备份 /etc、/home、数据库与业务数据;可用 rsync 示例:sudo rsync -av /etc /home /backup。确保备份可用(还原演练)。
  • 检查资源与网络:使用 df -h 确认 / 与 /boot 至少预留约 5GB 可用空间;确保 稳定电源与网络(服务器建议 UPS)。
  • 查看当前版本:lsb_release -acat /etc/os-releaseuname -r,确认升级路径与内核版本。
  • 变更窗口与回退预案:选择 低峰时段 执行;准备 快照/克隆旧内核回退 方案;升级中避免断电与强制中断。
  • 维护窗口与通知:提前通知业务方,规划 服务停机/切换回滚触发条件

二 日常与定期维护清单

  • 安全与软件包更新:使用发行版包管理器定期更新;启用无人值守安全更新(如 Ubuntu 的 unattended-upgrades)。
  • 清理与空间回收:清理包缓存与无用依赖(如 apt autoremove、dnf/yum autoremove),清理旧日志(如 journalctl --vacuum-size=100M),检查大文件(如 find / -type f -size +100M)。
  • 日志与健康监控:关注 /var/log 关键日志,使用 top/htop、vmstat、iostat 等监控资源;必要时配置 Prometheus/Zabbix 告警。
  • 用户与权限:清理 失效账户/SSH 密钥,禁用不必要服务与端口,遵循 最小权限 原则。
  • 配置与合规审计:定期核查 防火墙规则、SSH 安全配置、内核/系统参数 与安全基线。

三 发行版升级与内核更新

发行版与场景 标准操作 关键要点
Debian/Ubuntu 软件包 sudo apt update && sudo apt upgrade 常规安全与功能更新
Debian/Ubuntu 主版本 sudo do-release-upgrade 先全量更新;按提示处理配置文件;全程联网
Ubuntu HWE 内核 sudo apt install --install-recommends linux-generic-hwe-22.04 获取较新硬件支持与内核修复
RHEL/CentOS 8 软件包 sudo dnf update -y 次版本升级与补丁应用
RHEL/CentOS 8 → Stream 安装/切换 Stream 仓库后 sudo dnf distro-sync CentOS 8 已 EOL,建议迁移 Rocky/AlmaLinux
Rocky/AlmaLinux 小版本 sudo dnf clean all && sudo dnf update -y && sudo reboot 升级后重启生效
RHEL/CentOS 内核(可选) 启用 ELReposudo dnf --enablerepo=elrepo-kernel install kernel-ml 更新 GRUB 并选择新内核启动
Fedora 主版本 sudo dnf system-upgrade 按官方流程执行,先测试后生产
  • 通用验证:重启后用 uname -rcat /etc/os-release 确认 内核与系统版本;若异常,进入 GRUB 选择旧内核 回退排查。

四 自动化与排错要点

  • 自动化与安全更新:
    • Ubuntu:sudo apt install unattended-upgrades 并启用自动安全补丁;
    • RHEL/CentOS:sudo yum update(按需设置自动更新策略)。
  • 常见故障处理:
    • 更新失败:检查网络与软件源;清理缓存后重试(如 apt clean / dnf clean all);
    • 升级中断:避免强制关机,重新运行升级命令;必要时从 LiveCD/救援模式 修复;
    • 无法启动:在 GRUB 选择 旧内核 启动,回退驱动或配置;
    • 空间不足:清理 /var/cache、/tmp、旧日志,或扩容分区后再升级。

五 最小可用维护脚本示例

  • Ubuntu/Debian 日常维护(可放入 cron 每周执行)
#!/usr/bin/env bash
set -Eeuo pipefail

echo "[$(date)] 开始系统维护..."

# 1) 更新与升级
sudo apt update && sudo apt full-upgrade -y

# 2) 自动安全更新(如已安装)
sudo unattended-upgrade -v || true

# 3) 清理
sudo apt autoremove -y
sudo apt autoclean

# 4) 日志轮转与清理(保留最近 100MB)
sudo journalctl --rotate
sudo journalctl --vacuum-size=100M

# 5) 空间检查
df -h

echo "[$(date)] 维护完成"
  • RHEL/CentOS/Rocky 日常维护
#!/usr/bin/env bash
set -Eeuo pipefail

echo "[$(date)] 开始系统维护..."

# 1) 更新
sudo dnf update -y

# 2) 清理
sudo dnf autoremove -y
sudo dnf clean all

# 3) 日志轮转与清理(保留最近 100MB)
sudo journalctl --rotate
sudo journalctl --vacuum-size=100M

# 4) 空间检查
df -h

echo "[$(date)] 维护完成"

提示:生产环境请先在测试环境验证脚本,重要操作前做好 备份与快照

0