物理机 3.10 内核 + ali2013 版本 + IPv6 开启检查方法

举报
久绊A. 发表于 2026/01/29 14:51:20 2026/01/29
【摘要】 本次检查的核心是判定物理机是否同时满足「3.10内核」「ali2013及后续版本」「IPv6开启」三项条件,以下分「手动单台检查」和「批量自动化检查」两种方法详细说明,覆盖操作步骤、结果判断、注意事项。前置准备无论哪种检查方法,都需要先完成以下准备工作,确保检查顺利执行:操作机(执行命令/脚本的机器)需能访问目标API地址(127.0.0.1:7070),获取物理机列表。操作机需配置与所有目...

本次检查的核心是判定物理机是否同时满足「3.10内核」「ali2013及后续版本」「IPv6开启」三项条件,以下分「手动单台检查」和「批量自动化检查」两种方法详细说明,覆盖操作步骤、结果判断、注意事项。

前置准备

无论哪种检查方法,都需要先完成以下准备工作,确保检查顺利执行:

操作机(执行命令/脚本的机器)需能访问目标API地址(127.0.0.1:7070),获取物理机列表。

操作机需配置与所有目标物理机的免密SSH登录,避免频繁输入密码影响效率。

# 配置免密登录(替换为实际物理机主机名,执行后输入物理机登录密码即可完成授权)
ssh-copy-id c23f06001.cloud.f06.amtest48

确保操作机已安装curlgrepawk工具(Linux系统默认自带,无需额外安装)。

步骤1:获取目标物理机主机名

先通过API提取需要检查的物理机列表(非虚拟机、tianji项目),命令如下:

# 提取物理机主机名,输出结果可直接复制用于后续单台检查
curl -s '127.0.0.1:7070/api/v3/column/m.id?m.project=tianji&m.sm_name!=VM' | grep "m.id" | awk '{print $2}'

执行后得到物理机主机名列表,示例:

c23f06001.cloud.f06.amtest48
c23f10134.cloud.f11.amtest48

步骤2:单台物理机三项条件逐一检查

选取列表中的一台物理机(以c23f06001.cloud.f06.amtest48为例),依次执行以下3条检查命令,记录每条命令的执行结果。

条件1:检查是否为3.10内核

执行命令:

ssh c23f06001.cloud.f06.amtest48 "uname -r | grep 3.10"

结果判断:

满足(符合条件1):命令输出包含3.10的内核版本号,示例输出:3.10.0-ali2013.el7.x86_64

不满足(不符合条件1):命令无任何输出,返回空

条件2:检查是否为ali2013及后续版本

执行命令:

ssh c23f06001.cloud.f06.amtest48 "uname -r | grep ali201"

结果判断:

满足(符合条件2):命令输出包含ali201的内核版本号,示例输出:3.10.0-ali2013.el7.x86_64(ali2013)、3.10.0-ali2019.el7.x86_64(ali2019)

不满足(不符合条件2):命令无任何输出,返回空

条件3:检查是否开启IPv6

执行命令:

ssh c23f06001.cloud.f06.amtest48 "cat /proc/cmdline | grep ipv6.disable=0"

结果判断:

满足(符合条件3):命令输出包含ipv6.disable=0的内核启动参数,示例输出:BOOT_IMAGE=/vmlinuz-3.10.0-ali2013.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet ipv6.disable=0

不满足(不符合条件3):命令无任何输出,返回空

步骤3:最终结果判定

汇总单台物理机的3项条件检查结果,按照以下逻辑判定最终是否通过:

检查不通过:3项条件全部满足(均有有效输出)

检查通过:任意1项及以上条件不满足(至少1项无输出)

手动检查示例

物理机主机名

条件1结果

条件2结果

条件3结果

最终判定

c23f06001.cloud.f06.amtest48

有输出(3.10内核)

有输出(ali2013)

有输出(IPv6开启)

检查不通过

c23f10134.cloud.f11.amtest48

无输出(5.4内核)

有输出(ali2013)

有输出(IPv6开启)

检查通过

批量自动化检查

当物理机数量较多时,手动单台检查效率低下,可通过Shell脚本封装所有逻辑,实现「自动获取列表→批量轮询检查→自动汇总结果」,无需人工干预。

步骤1:编写批量检查脚本

创建脚本文件physical_machine_batch_check.sh,内容如下(包含完整逻辑和容错处理):

#!/bin/bash
# 物理机三项条件批量检查脚本
# 功能:自动获取物理机列表,批量验证3项条件,输出最终检查结果

# 定义临时文件存储物理机列表
TEMP_LIST="/tmp/physical_machines_check.list"

# 步骤1:自动获取目标物理机列表
echo "========================================"
echo "开始获取tianji项目非VM物理机列表..."
curl -s '127.0.0.1:7070/api/v3/column/m.id?m.project=tianji&m.sm_name!=VM' | grep "m.id" | awk '{print $2}' > $TEMP_LIST

# 容错:检查是否获取到有效列表
if [ ! -s $TEMP_LIST ]; then
    echo "错误:未获取到任何物理机列表!请检查API接口或项目配置。"
    echo "========================================"
    exit 1
fi

# 统计物理机数量
MACHINE_COUNT=$(wc -l < $TEMP_LIST)
echo "成功获取到 $MACHINE_COUNT 台物理机,开始批量检查..."
echo "========================================"

# 步骤2:批量轮询物理机,执行三项条件检查
while read -r HOSTNAME; do
    # 跳过空行(避免列表异常导致报错)
    if [ -z "$HOSTNAME" ]; then
        continue
    fi

    echo "正在检查物理机:$HOSTNAME"
    
    # 执行三项条件检查,通过返回值判断是否满足(0=满足,非0=不满足)
    # 增加SSH连接超时5秒,避免单台机器不可达导致脚本卡顿
    ssh -o ConnectTimeout=5 $HOSTNAME "uname -r | grep 3.10" > /dev/null 2>&1
    CONDITION_1=$?

    ssh -o ConnectTimeout=5 $HOSTNAME "uname -r | grep ali201" > /dev/null 2>&1
    CONDITION_2=$?

    ssh -o ConnectTimeout=5 $HOSTNAME "cat /proc/cmdline | grep ipv6.disable=0" > /dev/null 2>&1
    CONDITION_3=$?

    # 步骤3:自动判定最终结果并输出
    if [ $CONDITION_1 -eq 0 ] && [ $CONDITION_2 -eq 0 ] && [ $CONDITION_3 -eq 0 ]; then
        echo "结果:❌ 检查不通过(同时满足3.10内核、ali2013+版本、IPv6开启)"
    else
        echo "结果:✅ 检查通过"
    fi
    echo "----------------------------------------"
done < $TEMP_LIST

# 步骤4:清理临时文件,完成检查
rm -f $TEMP_LIST
echo "批量检查完成!共检查 $MACHINE_COUNT 台物理机。"
echo "========================================"

步骤2:执行批量检查脚本

  1. 赋予脚本执行权限:
chmod +x physical_machine_batch_check.sh
  1. 运行脚本:
./physical_machine_batch_check.sh

步骤3:查看批量检查结果

脚本执行过程中,会实时输出每台物理机的检查进度和最终结果,示例输出:

========================================
开始获取tianji项目非VM物理机列表...
成功获取到 2 台物理机,开始批量检查...
========================================
正在检查物理机:c23f06001.cloud.f06.amtest48
结果:❌ 检查不通过(同时满足3.10内核、ali2013+版本、IPv6开启)
----------------------------------------
正在检查物理机:c23f10134.cloud.f11.amtest48
结果:✅ 检查通过
----------------------------------------
批量检查完成!共检查 2 台物理机。
========================================
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。