先看清两个清单
打补丁的第一步不是装,而是先弄清「有哪些待装更新」和「有哪些进程还在用旧库需要重启」。待装更新清单反映漏洞暴露面,重启待办则反映「补丁装了但没生效」——内核、glibc、systemd 更新后不重启主机,漏洞仍然留在运行中的内存里。把这两件事做成 RHEL 系与 Debian 系都能跑的标准命令,就是补丁合规检查的第一现场。
基本信息
| 适用平台 | RHEL / CentOS 系与 Ubuntu / Debian 系 |
|---|---|
| 风险等级 | 低(核查类操作) |
| 基线要求 | 无高危积压、重启待办清零 |
| 关键命令 | dnf check-update、needs-restarting、apt list --upgradable、needrestart |
| 重启待办来源 | 内核、glibc、systemd、openssl 等核心组件更新 |
典型使用场景
- 月度或季度补丁合规巡检的第一步
- 变更窗口前评估需要重启哪些服务、哪些主机
- 内核漏洞修复后确认重启是否真的生效
- 整改报告中证明「无高危补丁积压」
- 自动化脚本采集补丁与重启状态进入资产台账
RHEL 系
RHEL 系
dnf check-update --security | head -20 # 只看安全类可用更新
dnf needs-restarting -r; echo "exit=$?" # 返回 1 表示需要重启主机
dnf needs-restarting -s # 仅列出需要重启的服务Debian 系
Debian 系
apt list --upgradable 2>/dev/null | wc -l # 待升级包数量
ls -l /var/run/reboot-required 2>/dev/null && cat /var/run/reboot-required # 是否存在重启标记
needrestart -b 2>/dev/null | head # 列出仍在使用旧库的进程输出逐列读法
| 输出项 | 含义 | 判读 |
|---|---|---|
| -r 的退出码 | 是否需要重启主机 | 1 表示需要,0 表示不需要 |
| reboot-required 文件 | Debian 系的重启标记 | 文件存在说明有待重启项 |
| reboot-required.pkgs | 触发重启的软件包 | 逐条确认是否为核心组件 |
| needrestart 列表 | 仍在使用旧库的进程 | 逐项重启服务或主机 |
| upgradable 数量 | 待升级包总数 | 结合安全源判断紧急程度 |
只重启服务不重启主机,内核漏洞无法修复:运行中的内核还是旧的那个,必须安排重启到新内核才真正生效。
生产主机重启要走计划:先确认业务有无单点依赖、是否在变更窗口内,不能因为扫描报告出现重启待办就直接动手。