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

简介: 本文档介绍物理机合规检查方案,聚焦「3.10内核」「ali2013+版本」「IPv6开启」三项核心条件。提供手动单台与批量自动化两种检查方法,涵盖前置准备(API访问、免密SSH、基础工具)、分步执行命令、结果判定逻辑及完整Shell脚本,确保高效准确完成大规模检查。

本次检查的核心是判定物理机是否同时满足「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 台物理机。
========================================
目录
相关文章
|
存储 NoSQL 数据库
全局id生成方式
全局id生成方式
297 0
|
1月前
|
人工智能 自然语言处理 安全
解放你的文件夹:智能文件整理Agent,让杂乱文件一键归位
FolderFox是一款基于DeepSeek大模型的智能文件夹整理Agent工具,支持智能语义分类、按类型/前缀整理,提供可视化预览、拖拽调整、高风险文件防护及多语言定制。开源免费,开箱即用。
504 2
|
1月前
|
人工智能 安全 前端开发
别被“养虾”焦虑收割了!OpenClaw永远无法取代测试工程师的3个核心原因
OpenClaw虽火爆(25万星超React),但三大致命缺陷:安全审计仅58.9%通过率,关键项“意图理解”为0%;仅具执行能力,无法理解业务逻辑与质量策略;缺乏怀疑精神,盲目执行、编造结果、无视伦理。它不是替代者,而是需被专业测试工程师驾驭的工具。
|
3月前
|
运维 Kubernetes Docker
K8s集群异常Pod高效排查命令(kube-system核心场景)
本文介绍一条专为K8s容器化集群设计的“一站式”异常Pod排查命令。它通过`docker exec`进入K8s核心容器,执行`kubectl get pod -A`并反向过滤正常状态(如1/1、2/2),快速定位`kube-system`等关键命名空间中就绪异常的Pod,解决步骤繁琐、筛选低效、覆盖不全三大运维痛点,支持巡检、应急、变更验证等场景。(239字)
263 0
K8s集群异常Pod高效排查命令(kube-system核心场景)
|
7月前
|
监控 安全 数据可视化
Amass 被动与主动子域收集
Amass是OWASP推出的开源信息收集工具,主要用于域名信息收集、子域名枚举与攻击面分析。它结合被动数据源、主动探测及字典爆破发现目标资产,支持生成可视化图表,适用于渗透测试、资产管理和安全监控等多种场景。
270 0
|
11月前
|
存储 数据管理 网络虚拟化
特殊网络类型分类
本文介绍了网络技术中的关键概念,包括虚拟局域网(VLAN)、存储区域网络(SAN)、网络桥接、接入网以及按拓扑结构和交换方式分类的网络类型。VLAN通过逻辑分隔提高性能与安全性;SAN提供高性能的数据存储解决方案;网络桥接实现不同网络间的互联互通;接入网解决“最后一千米”的连接问题。此外,文章详细对比了总线型、星型、树型、环型和网状型等网络拓扑结构的特点,并分析了电路交换、报文交换和分组交换的优缺点,为网络设计与应用提供了全面参考。
468 8
|
Java 调度 Python
多线程优化For循环:实战指南
本文介绍如何使用多线程优化For循环,提高程序处理大量数据或耗时操作的效率。通过并行任务处理,充分利用多核处理器性能,显著缩短执行时间。文中详细解释了多线程基础概念,如线程、进程、线程池等,并提供了Python代码示例,包括单线程、多线程和多进程实现方式。最后,还总结了使用多线程或多进程时需要注意的事项,如线程数量、任务拆分、共享资源访问及异常处理等。
567 7
|
存储 并行计算 数据处理
蓝易云 - 香港站群服务器1C,4C,8C,16C的配置介绍
以上是对服务器CPU核心数量的基本解释,但实际的服务器配置还会包括其他因素,如内存大小、存储类型和网络带宽等。这些因素都会影响服务器的性能和适用场景。
1685 2
|
数据采集 搜索推荐 算法
fuzzywuzzy,一个好用的 Python 库!
fuzzywuzzy,一个好用的 Python 库!
544 0