三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

麒麟V10 SP3实战:从`/etc/.productinfo`到`nkvers`,系统版本信息查询全攻略

麒麟V10 SP3实战:从`/etc/.productinfo`到`nkvers`,系统版本信息查询全攻略

麒麟V10 SP3系统信息查询与运维实战指南

作为国产操作系统的代表之一,麒麟V10 SP3(代号Halberd)在政务、金融等关键领域得到广泛应用。对于刚接触该系统的开发者或运维人员而言,快速掌握系统信息查询方法至关重要。本文将深入解析从基础版本查询到服务状态检查的全套实战技巧。

1. 系统版本信息深度解析

麒麟V10 SP3系统提供了多种版本信息查询方式,每种方法输出的信息维度各有侧重。理解这些差异能帮助我们在不同场景下快速定位问题。

1.1 核心版本文件查询

/etc/.productinfo文件是系统版本信息的最权威来源,其内容格式如下示例:

Kylin Linux Advanced Server release V10 SP3 2403/(Halberd)-x86_64-Build20/20240426

关键字段说明:

  • V10 SP3:主版本与补丁版本
  • Halberd:版本代号(SP3对应Lance/Halberd)
  • x86_64:系统架构
  • Build20:构建编号
  • 20240426:构建日期

/etc/.kyinfo文件则提供了更详细的元数据:

[dist] name=Kylin milestone=Server-V10-SP3-General-Release-2303 arch=arm64 beta=False time=2023-03-24 14:51:29

1.2 nkvers命令的妙用

nkvers命令是麒麟系统特有的版本查询工具,输出信息结构化程度高:

############## Kylin Linux Version ################# Release: Kylin Linux Advanced Server release V10 (Halberd) Kernel: 4.19.90-89.11.v2401.ky10.x86_64 Build: Kylin Linux Advanced Server release V10 SP3 2403/(Halberd)-x86_64-Build20/20240426

该命令特别适合在脚本中提取版本信息,因其输出格式稳定且包含内核版本等关键数据。

1.3 各版本代号对照表

版本代号对应版本内核版本示例
Sun初始版本4.19.90-23.8.v2101
TercelSP14.19.90-23.8.v2101
SwordSP24.19.90-24.4.v2101
LanceSP34.19.90-52.22.v2207
HalberdSP3 24034.19.90-89.11.v2401

提示:在跨版本问题排查时,准确识别版本代号可快速定位已知问题

2. 软件包管理实战

麒麟V10 SP3采用RPM包管理体系,不同SP版本的软件包存在显著差异。

2.1 软件包查询技巧

基础查询命令:

rpm -qa | grep package_name # 精确查询 rpm -qa --last | head -10 # 查看最近安装的10个包

典型版本差异对比(以auditd为例):

版本软件包版本配置文件路径
SP1audit-3.0-5.se.06/etc/audit/audit.rules
SP3audit-3.0-10.se.06/etc/audit/rules.d/

2.2 关键组件版本速查表

# 生成系统关键组件报告 echo "==== 核心组件版本 ====" rpm -q kernel-core glibc bash openssl echo "==== 安全组件 ====" rpm -q audit kysec libselinux

2.3 软件源配置

SP3的默认源配置位于:

/etc/yum.repos.d/kylin_x86_64.repo

典型配置示例:

[ks10-adv-os] name = Kylin Linux Advanced Server 10 - Os baseurl = http://archive.kylinos.cn/yum/KS10-ADV/os/$basearch/ gpgcheck = 1 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin

3. 系统服务管理指南

麒麟V10 SP3采用systemd管理服务,但部分服务的默认状态与CentOS存在差异。

3.1 关键服务状态检查

# 检查服务状态的标准命令格式 systemctl status service_name -l --no-pager # 常用服务检查清单 for service in named auditd cockpit.socket; do echo "==== $service ====" systemctl is-active $service systemctl is-enabled $service done

典型服务状态对照:

服务SP1默认状态SP3默认状态说明
nameddisableddisabledDNS服务
auditddisabledenabled审计服务
cockpit.socketdisableddisabled网页管理接口

3.2 服务管理实战案例

场景:启用审计服务并验证配置

# 启用服务 sudo systemctl enable --now auditd # 验证规则加载 sudo auditctl -l # 查看实时日志 sudo tail -f /var/log/audit/audit.log

注意:修改audit规则后需要执行service auditd restart生效

4. 系统诊断与信息收集

4.1 硬件信息收集

# CPU信息 lscpu # 内存信息 free -h # 磁盘信息 lsblk -o NAME,SIZE,TYPE,MOUNTPOINT,FSTYPE

4.2 系统日志分析

关键日志路径:

  • /var/log/messages:系统主日志
  • /var/log/secure:安全相关日志
  • /var/log/audit/audit.log:审计日志

日志分析命令示例:

# 查找过去1小时内的错误日志 journalctl --since "1 hour ago" -p err

4.3 性能监控工具

# 实时监控 top -H -p $(pgrep -d, named) # 生成系统快照 sudo sosreport --batch --tmp-dir /tmp

麒麟V10 SP3特有的监控命令:

kysec-stat # 查看安全模块状态 kywhlist -l # 查看白名单规则

5. 常见问题排查手册

5.1 版本不匹配问题

现象:软件包依赖冲突
解决方案

# 确认系统版本 cat /etc/.productinfo # 查询软件包所属版本 repoquery --qf="%{name}-%{version}-%{release} %{repoid}" package_name

5.2 服务启动失败

典型排查步骤:

# 查看详细日志 journalctl -u service_name -xe # 检查依赖关系 systemctl list-dependencies service_name # 测试配置文件 service_name --test-config

5.3 安全模块冲突

当kysec模块导致异常时,临时禁用方法:

sudo kysec_set -d # 进入调试模式 sudo kysec_set -e # 恢复安全模式

6. 自动化运维脚本示例

6.1 系统信息收集脚本

#!/bin/bash echo "==== 系统基本信息 ====" nkvers echo -e "\n==== 内核版本 ====" uname -a echo -e "\n==== 内存使用 ====" free -h echo -e "\n==== 磁盘空间 ====" df -hT

6.2 服务状态检查脚本

#!/usr/bin/python3 import subprocess services = ['named', 'auditd', 'cockpit.socket'] for svc in services: status = subprocess.getoutput(f'systemctl is-active {svc}') print(f"{svc:15} : {status}")

在实际运维中,建议将常用检查命令封装成脚本并定期执行,建立系统健康档案。对于关键业务系统,可结合麒麟提供的kysec等安全模块增强系统防护能力。

← 返回列表