跳转到内容
搜索 RunEntLinux 文档

仅搜索 RunEntLinux 通用文档,各发行版文档使用各自的搜索入口。

    浏览当前文档目录

    迁移后检查清单

    完成从 CentOS 到 AlmaLinux 或 Rocky Linux 的迁移后,按照以下清单逐项验证,确保系统正常工作。

    建议: 将本页加入书签,迁移后逐项核对。每完成一项检查后在自己的文档中标记为已完成。

    首先确认系统已成功切换到目标发行版。

    检查 os-release
    $ cat /etc/os-release

    确认 NAME 和 ID 字段显示正确的发行版名称(AlmaLinux 或 Rocky Linux)。

    检查 redhat-release
    $ cat /etc/redhat-release
    确认发行版标识包
    $ rpm -qa | grep -E '(almalinux|rocky)-release'
    确认没有残留的 CentOS 标识包
    $ rpm -qa | grep centos-release

    如果仍有 CentOS 包残留:

    清除残留的 CentOS 包
    $ sudo dnf remove centos-release centos-logos centos-indexhtml 2>/dev/null
    $ sudo dnf distro-sync -y
    查看当前运行的内核
    $ uname -r
    查看所有已安装的内核
    $ rpm -qa kernel-core | sort
    确认 GRUB 默认内核
    $ sudo grubby --default-kernel

    确保运行的内核来自目标发行版。如果仍在使用旧内核:

    安装最新内核并设为默认
    $ sudo dnf install -y kernel
    $ sudo grubby --set-default /boot/vmlinuz-$(rpm -q kernel-core --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort -V | tail -1)
    列出所有失败的服务
    $ systemctl list-units --type=service --state=failed

    如果有服务失败,逐一排查:

    查看失败服务的详情
    $ systemctl status <服务名>
    $ journalctl -u <服务名> -n 50 --no-pager
    对比迁移前的服务列表
    $ systemctl list-units --type=service --state=running > ~/services-after-migration.txt
    $ diff ~/services-before-migration.txt ~/services-after-migration.txt
    检查 SSH 服务
    $ systemctl is-active sshd
    检查 cron 定时任务
    $ systemctl is-active crond
    检查系统日志服务
    $ systemctl is-active rsyslog
    检查防火墙服务
    $ systemctl is-active firewalld
    列出所有已启用的仓库
    $ dnf repolist --enabled

    确认仓库指向正确的发行版。不应该有残留的 CentOS 仓库。

    检查是否有残留的 CentOS 仓库文件
    $ ls /etc/yum.repos.d/ | grep -i centos
    测试仓库可用性
    $ sudo dnf check-update
    确认 EPEL 仓库正常(如需要)
    $ dnf repolist | grep epel

    如果 EPEL 不存在但需要使用:

    安装 EPEL
    $ sudo dnf install -y epel-release
    检查 Nginx 状态(如适用)
    $ systemctl is-active nginx && curl -s -o /dev/null -w "%{http_code}" http://localhost/
    检查 Apache/httpd 状态(如适用)
    $ systemctl is-active httpd && curl -s -o /dev/null -w "%{http_code}" http://localhost/
    检查 MySQL/MariaDB(如适用)
    $ systemctl is-active mariadb || systemctl is-active mysqld
    $ mysqladmin ping 2>/dev/null && echo "数据库连接正常"
    检查 PostgreSQL(如适用)
    $ systemctl is-active postgresql
    $ sudo -u postgres psql -c "SELECT version();" 2>/dev/null
    检查 PHP 版本(如适用)
    $ php -v 2>/dev/null
    检查 Python 版本
    $ python3 --version
    检查 Java 版本(如适用)
    $ java -version 2>/dev/null

    对于自建应用程序,执行以下检查:

    检查应用端口是否在监听
    $ sudo ss -tlnp | grep <应用端口>
    测试应用 HTTP 接口(如适用)
    $ curl -s http://localhost:<端口>/health
    检查 SELinux 当前模式
    $ getenforce

    正常情况下应返回 Enforcing。如果返回 Disabled 或 Permissive,需要确认这是否是预期的配置。

    查看 SELinux 配置文件
    $ cat /etc/selinux/config
    检查是否有 SELinux 拒绝记录
    $ sudo ausearch -m avc -ts recent 2>/dev/null | head -30

    迁移后某些文件的 SELinux 标签可能不正确:

    重新标记文件系统(如有 SELinux 问题)
    $ sudo fixfiles -F onboot

    这会在下次重启时重新标记整个文件系统。如果不想重启:

    立即重新标记(可能耗时较长)
    $ sudo restorecon -Rv /etc /var /home
    查看防火墙状态
    $ sudo firewall-cmd --state
    列出所有已放行的服务和端口
    $ sudo firewall-cmd --list-all
    确认关键端口已放行
    $ sudo firewall-cmd --query-port=22/tcp # SSH
    $ sudo firewall-cmd --query-port=80/tcp # HTTP
    $ sudo firewall-cmd --query-port=443/tcp # HTTPS

    对比迁移前的防火墙配置:

    列出所有区域配置
    $ sudo firewall-cmd --list-all-zones | grep -A 10 "active"
    检查网络接口状态
    $ ip addr show
    检查默认路由
    $ ip route show default
    检查 DNS 配置
    $ cat /etc/resolv.conf
    测试 DNS 解析
    $ dig +short google.com
    测试外网连通性
    $ ping -c 3 8.8.8.8
    检查 NetworkManager 连接
    $ nmcli connection show
    确认主机名正确
    $ hostnamectl
    检查 root 的 crontab
    $ sudo crontab -l
    检查系统级定时任务
    $ ls -la /etc/cron.d/
    $ ls -la /etc/cron.daily/
    $ ls -la /etc/cron.weekly/
    检查 systemd 定时器
    $ systemctl list-timers --all

    确认迁移后备份系统仍然正常工作。

    检查备份工具是否可用
    $ which rsync && rsync --version | head -1
    如果使用 LVM 快照,确认快照状态
    $ sudo lvs

    重要提示: 迁移成功并验证无误后,建议立即创建一份新的完整备份作为新的基线。

    创建迁移后的包列表快照
    $ rpm -qa --queryformat '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' | sort > ~/packages-after-migration-verified.txt

    确认系统能正常接收更新:

    检查可用更新
    $ sudo dnf check-update
    安装所有可用更新
    $ sudo dnf update -y
    如果更新了内核,重启系统
    $ sudo needs-restarting -r && echo "无需重启" || echo "需要重启以应用内核更新"

    以下脚本可以一次性完成大部分检查并输出报告:

    运行迁移后快速检查
    $ echo "===== 系统版本 ====="
    $ cat /etc/redhat-release
    $ echo ""
    $ echo "===== 内核版本 ====="
    $ uname -r
    $ echo ""
    $ echo "===== SELinux 状态 ====="
    $ getenforce
    $ echo ""
    $ echo "===== 失败的服务 ====="
    $ systemctl list-units --type=service --state=failed --no-legend
    $ echo ""
    $ echo "===== 已启用的仓库 ====="
    $ dnf repolist --enabled 2>/dev/null
    $ echo ""
    $ echo "===== 防火墙状态 ====="
    $ sudo firewall-cmd --state 2>/dev/null
    $ echo ""
    $ echo "===== 磁盘使用 ====="
    $ df -h / /boot /var 2>/dev/null
    $ echo ""
    $ echo "===== 网络连通性 ====="
    $ ping -c 1 -W 3 8.8.8.8 >/dev/null 2>&1 && echo "外网连通" || echo "外网不通"
    $ dig +short google.com >/dev/null 2>&1 && echo "DNS 正常" || echo "DNS 异常"
    $ echo ""
    $ echo "===== 残留 CentOS 包 ====="
    $ rpm -qa | grep -i centos || echo "无残留"