You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求无需重启的Yum更新Shell脚本(排除内核及需重启重要包)

Yum更新Shell脚本(无需重启,排除内核及需重启的关键包)

嘿,作为Linux脚本新手,你这个需求太贴合日常运维场景了——既要保持系统软件包新鲜,又不想因为更新内核或核心组件被迫打断业务。我给你准备了一份实用脚本,还会把每个细节拆解清楚,方便你理解和调整:

#!/bin/bash

# 定义需要排除的软件包(内核及需重启的核心组件)
EXCLUDED_PACKAGES="kernel* glibc* systemd* dracut* initramfs*"

# 先预览可更新的包(排除指定项),让你提前确认内容
echo "=== 即将更新的软件包(已排除内核及核心重启组件) ==="
yum check-update --exclude=$EXCLUDED_PACKAGES

# 加入交互式确认,防止误操作
read -p "确认要执行本次更新吗?(y/N): " CONFIRM
if [[ $CONFIRM =~ ^[Yy]$ ]]; then
    echo "=== 开始执行更新,请稍候 ==="
    yum update -y --exclude=$EXCLUDED_PACKAGES

    # 更新完成后的提示
    echo "=== 更新完成!已自动跳过内核、glibc、systemd等需重启的组件 ==="
else
    echo "更新已取消,系统保持当前状态"
fi

脚本关键细节说明:

  • 排除包列表:EXCLUDED_PACKAGES里的都是更新后必然需要重启系统的核心组件:
    • kernel*:所有内核相关包,新内核必须重启才能加载生效
    • glibc*:GNU C库,系统最底层的依赖库,更新后绝大多数进程都需要重启才能适配
    • systemd*:系统初始化管理器,更新后必须重启才能启用新版本
    • dracut*和initramfs*:与内核镜像生成相关的工具,只有更新内核时才需要同步更新
  • yum check-update:先列出待更新包的预览,让你提前确认更新范围,避免意外
  • 交互式确认:加了确认步骤,防止手滑误执行更新

额外实用小贴士:

  • 之后如果计划重启系统了,可以手动执行yum update -y来更新所有包(包括内核)
  • 你可以根据自己的系统需求,调整EXCLUDED_PACKAGES里的内容,比如添加其他你暂时不想更新的包
  • 执行脚本前记得给它加执行权限:chmod +x update_without_reboot.sh

内容的提问来源于stack exchange,提问作者Gerald Johnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:05:23