15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
31.10.2024

如何检查 CentOS 版本:完整指南(所有方法)

准确了解服务器上运行的CentOS版本是任何系统管理员的基本技能。无论您是在安装兼容的软件包、排查系统问题、规划操作系统迁移还是管理安全更新,拥有准确的版本信息至关重要。幸运的是,CentOS提供了多个可靠的命令来检索这些数据——本指南详细介绍了所有这些命令。

为什么检查CentOS版本很重要

在深入了解命令之前,值得理解为什么版本意识在生产环境中如此重要:

  • 软件兼容性:许多软件包和依赖项与特定的CentOS主版本或次版本相关联。
  • 安全补丁:了解您的版本可以帮助您识别哪些CVE适用于您的系统以及哪些补丁可用。
  • 生命周期规划:CentOS 8于2021年12月31日达到生命周期终止。如果您仍在运行它,您需要了解并规划迁移。
  • 支持和故障排除:在开启支持工单或查阅文档时,版本信息始终是首先要求的内容之一。

如果您运行的是VPS托管环境或专用服务器,跟踪您的操作系统版本是负责任的服务器管理的必不可少的部分。

方法1:使用cat命令读取/etc/centos-release

这是最快速和最直接的方法。CentOS将其版本信息存储在位于/etc/centos-release的专用发布文件中。

命令:

cat /etc/centos-release

示例输出:

CentOS Linux release 8.5.2111 (Core)

这一行提供了完整的版本字符串,包括主版本(8)、次版本(5.2111)和构建标签(Core)。这是快速、人类可读的版本检查的首选命令,几乎适用于所有CentOS安装,无需任何额外的软件包。

方法2:使用hostnamectl获取系统和操作系统详细信息

hostnamectl命令是一个systemd实用程序,提供系统的更广泛概览,包括操作系统名称、版本和内核。它在CentOS 7和CentOS 8上特别有用,这两者都基于systemd。

命令:

hostnamectl

示例输出:

   Static hostname: myserver.example.com
         Icon name: computer-vm
           Chassis: vm
        Machine ID: a1b2c3d4e5f6...
           Boot ID: f6e5d4c3b2a1...
    Virtualization: kvm
  Operating System: CentOS Linux 8 (Core)
       CPE OS Name: cpe:/o:centos:centos:8
            Kernel: Linux 4.18.0-305.el8.x86_64
      Architecture: x86-64

关注Operating SystemKernel行。当您需要在单个命令中同时获得操作系统版本和内核版本时,此方法特别有价值,非常适合快速系统审计。

方法3:查询RPM软件包数据库

由于CentOS是基于RPM的发行版,版本信息也嵌入在称为centos-release的已安装RPM软件包中。您可以使用rpm命令直接查询它。

命令:

rpm -q centos-release

示例输出:

centos-release-8.5-4.2111.el8.x86_64

此输出特别精确——它显示了确切的发布软件包版本,包括架构(x86_64)。此方法在脚本场景中很有用,您需要机器可解析的字符串或想要验证发布软件包本身的完整性。

方法4:读取/etc/os-release获取详细的发行版信息

/etc/os-release文件是一个标准化文件,存在于几乎所有现代Linux发行版上。它提供关于操作系统的结构化键值信息,通常被脚本、配置管理工具(如Ansible或Puppet)和容器运行时使用。

命令:

cat /etc/os-release

示例输出:

NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

这是信息最丰富的方法,是自动化的首选方法。例如,VERSION_ID字段可以在shell脚本中使用grep或awk等工具轻松提取:

grep VERSION_ID /etc/os-release

输出:

VERSION_ID="8"

方法5:使用lsb_release(Linux标准库)

lsb_release命令是Linux标准库规范的一部分,提供发行版识别数据。在CentOS上,它可能默认未安装,但可以轻松添加。

检查是否可用:

lsb_release -a

如果未安装,请使用以下方式添加:

sudo yum install -y redhat-lsb-core

安装后的示例输出:

LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 8.5.2111 (Core)
Release:        8.5.2111
Codename:       Core

虽然此方法需要额外的软件包,但结构化输出(特别是RELEASE字段)对于需要在多个Linux发行版中保持兼容的脚本很有用。

方法6:使用uname检查内核版本

uname命令报告内核信息。虽然它不直接报告CentOS版本,但内核版本字符串与特定的CentOS版本密切相关,当发布文件不可用或损坏时,可用于交叉引用操作系统版本。

命令:

uname -r

示例输出:

4.18.0-305.el8.x86_64

内核字符串中的el8标签确认这是CentOS/RHEL 8系统。为了获得更完整的系统概览,请使用:

uname -a

这在最小容器镜像或chroot环境中特别有帮助,其中/etc/centos-release可能不存在。

快速参考:一览所有命令

以下是本指南中涵盖的所有方法的综合摘要:

命令显示内容需要额外软件包?
cat /etc/centos-release完整版本字符串
hostnamectl操作系统名称、版本、内核否(需要systemd)
rpm -q centos-release确切的RPM发布软件包
cat /etc/os-release结构化操作系统元数据
lsb_release -aLSB发行版信息是(redhat-lsb-core)
uname -r内核版本

额外内容:以编程方式提取版本

如果您正在编写shell脚本或使用配置管理工具,您可能希望清晰地仅提取版本号。以下是两个实用的单行命令:

仅提取主版本:

rpm -q --queryformat '%{VERSION}' centos-release

在发布文件上使用grep:

awk '{print $4}' /etc/centos-release

这些方法在VPS控制面板上的自动配置脚本中或在多个服务器上部署应用程序时特别有用。

CentOS版本生命周期终止考虑

重要的是要注意CentOS版本的当前支持状态:

  • CentOS 6:生命周期终止——2020年11月30日
  • CentOS 7:生命周期终止——2024年6月30日
  • CentOS 8:生命周期终止——2021年12月31日
  • CentOS Stream 8/9:滚动发布,积极维护

如果您的版本检查显示您运行的是生命周期终止的CentOS版本,您应该优先迁移到受支持的发行版,如AlmaLinux、Rocky Linux或CentOS Stream。运行不受支持的操作系统会使您的服务器暴露于未修补的漏洞,这在面向互联网的基础设施上特别危险。

在迁移或设置新的服务器环境时,考虑将您的部署与适当的SSL证书和注册的域名配对,以确保您的服务既安全又可从第一天起专业地从互联网访问。

结论

检查CentOS版本是一项简单但必不可少的任务,每个系统管理员都应该能够舒适地执行。有六种不同的方法可用——从读取发布文件到查询RPM数据库——无论您在什么环境或约束条件下工作,都有多个可靠的选项。

对于大多数用户,最好的方法是cat /etc/centos-release,因为它简单易用,而/etc/os-release是脚本和自动化的首选。当您需要在单个命令中快速概览操作系统和内核信息时,请使用hostnamectl。

了解您的操作系统版本只是维护健康、安全和管理良好的服务器的第一步。无论您是管理单个带cPanel

15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用