温馨提示×

怎么对比CentOS env差异

小樊
42
2026-07-09 06:57:28
栏目: 智能运维

对比 CentOS 环境差异,通常分场景,不同场景用的工具不一样。下面按最常见场景给你一个实用清单,从“最简单”到“最专业”。


一、对比「两台 CentOS 服务器」环境差异(最常见)

1️⃣ 系统版本 & 内核

cat /etc/redhat-release
uname -a

示例:

CentOS Linux release 7.9.2009 (Core)
3.10.0-1160.el7.x86_64

2️⃣ 已安装软件包差异(重点)

✅ CentOS 7(yum)

rpm -qa --sort > packages.txt

对比两台机器:

diff packages_A.txt packages_B.txt

或:

yum list installed | awk '{print $1}' | sort > yum_installed.txt

✅ CentOS 8 / Stream(dnf)

dnf list installed | awk '{print $1}' | sort > dnf_installed.txt

3️⃣ 环境变量差异

env | sort > env.txt

对比:

diff env_A.txt env_B.txt

指定用户:

su - username -c "env" | sort

4️⃣ 内核参数差异(sysctl)

sysctl -a | sort > sysctl.txt

对比:

diff sysctl_A.txt sysctl_B.txt

5️⃣ 启动服务差异

systemctl list-units --type=service --state=running > services.txt

对比:

diff services_A.txt services_B.txt

6️⃣ 网络配置差异

ip addr
ip route
cat /etc/resolv.conf

防火墙:

firewall-cmd --list-all
iptables -L -n

二、对比「同一台机器不同时间点的环境」

1️⃣ 使用 git(最推荐)

把环境当代码管理:

git init
git add .
git commit -m "env snapshot"

之后对比:

git diff

适合:

  • /etc
  • 配置文件
  • 自定义脚本

2️⃣ 使用 stat / diff

diff -r /etc/old /etc/new

三、对比「CentOS 7 vs CentOS 8 / Stream」

项目 CentOS 7 CentOS 8 / Stream
包管理 yum dnf
初始化 SysV systemd
内核 3.10 4.x+
Python 2.7 3.x
nftables

四、专业级:一键对比工具(强烈推荐)

✅ 1. etckeeper(/etc 神器)

yum install etckeeper
etckeeper init
etckeeper commit "init"

之后任何配置变更都可对比。


✅ 2. Ansible 收集事实(适合运维)

ansible all -m setup > facts.json

✅ 3. 镜像级对比(Docker / 系统盘)

rpm -qa | sort > base.txt

用于:

  • 容器 vs 宿主机
  • 升级前后对比

五、快速对比模板(直接可用)

#!/bin/bash
rpm -qa --sort > packages.txt
env | sort > env.txt
sysctl -a | sort > sysctl.txt
systemctl list-units --type=service --state=running > services.txt

六、常见差异排查场景

场景 重点对比
程序只在一台能跑 env、lib、rpm
网络不稳定 sysctl、防火墙
升级后出问题 rpm、systemd、内核
性能差异 ulimit、sysctl

七、我可以继续帮你

你可以直接告诉我:

  • CentOS 7 还是 8 / Stream?
  • 对比的是两台机器,还是同一台不同时间?
  • 重点是环境、软件、服务还是配置?

我可以给你定制一套对比脚本或检查清单

0