银河麒麟操作系统运维实战手册
基于银河麒麟 V10(服务器版 / 桌面版)的运维实战手册:版本识别、软件源、故障定位、systemd/网络/存储/Docker 运维、KYSEC 安全机制,并涵盖备份恢复、安全加固、日志监控、国产硬件适配与 FAQ。
银河麒麟操作系统运维实战手册#
基于银河麒麟 V10(服务器版 / 桌面版)的排障命令、软件源配置、systemd/网络/存储/Docker 运维,以及麒麟独有的 KYSEC 安全机制实战;并扩展备份恢复、安全加固、内核与日志、监控告警、国产硬件适配与 FAQ。
覆盖范围:2 系(服务器 RPM / 桌面 DEB)生态差异、1 套 KYSEC 安全机制、20 章 100+ 核心命令、信创国产化环境适配。
目录#
- 版本识别(先看这章)
- 软件源与软件包管理
- 系统故障定位
- systemd 服务管理
- 网络排障
- 性能分析
- 存储与磁盘
- 备份与恢复
- Shell 脚本规范
- Docker 运维
- KYSEC 安全机制(麒麟专属)
- 通用排障流程
- 安全加固清单
- 内核与启动管理
- 日志管理
- 监控与告警
- 国产硬件适配
- 常用应用部署
- 常见问题 FAQ
- 命令速查总表
01 版本识别——动手前先分清两套生态#
银河麒麟最大的坑:同一个 V10,服务器版和桌面版是两套完全不同的软件生态,命令体系不能混用。运维第一动作永远是先识别版本。
1.1 产品线速览#
| 产品 | 软件生态 | 包管理 | 防火墙 | 默认文件系统 | 源位置 |
|---|---|---|---|---|---|
| 高级服务器操作系统 V10(SP1/SP2/SP3) | RPM 系(兼容 CentOS/RHEL 8 生态) | yum / dnf | firewalld | xfs | /etc/yum.repos.d/ |
| 桌面操作系统 V10(SP1/SP2/SP3) | DEB 系(基于 Ubuntu 20.04 focal 生态) | apt / dpkg(兼容 yum 命令,实际指向 apt) | ufw | ext4 | /etc/apt/sources.list |
| V11(桌面/服务器新版) | 延续各自生态,安全中心界面升级 | 同上 | 同上 | 同上 | 同上 |
1.2 识别命令(三行定乾坤)#
cat /etc/os-release # 看 PRETTY_NAME / VERSION,最权威
nkvers # 麒麟专用:显示内核与麒麟版本号(服务器版常见)
rpm --version && dpkg --version # 哪个有输出就是哪套生态:rpm→服务器版,dpkg→桌面版
uname -m # 架构:x86_64 / aarch64(arm64),决定用哪个源
⚠️ 千万别做的事:在服务器版上执行 apt、在桌面版上执行 dnf;不要盲目把 Ubuntu 或 CentOS 的源直接搬进麒麟——内核版本与库依赖不同,会产生依赖冲突。桌面版虽然兼容 yum 命令(内部转 apt),但真正排障请用 apt 系命令。
02 软件源与软件包管理#
「There are no enabled repos / 依赖不满足」是麒麟装机后最常遇到的第一坑,90% 是软件源没配好。
2.1 服务器版(RPM 系)#
# 查看现有源(注意文件名随架构:kylin_x86_64.repo / kylin_aarch64.repo)
ls /etc/yum.repos.d/
dnf repolist all
# 配置麒麟官方源(V10 SP3 为例,不同 SP 版本 baseurl 不同!)
cat > /etc/yum.repos.d/kylin.repo <<'EOF'
[ks10-adv-os]
name = Kylin Linux Advanced Server 10 - OS
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/$basearch/
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled = 1
[ks10-adv-updates]
name = Kylin Linux Advanced Server 10 - Updates
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/updates/$basearch/
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled = 1
EOF
dnf clean all && dnf makecache # 重建缓存,然后 dnf list 验证
# 信创内网环境常用:挂载 ISO 做本地源
mount /path/Kylin-Server-V10-SP3-xxx-iso /mnt
cat > /etc/yum.repos.d/local.repo <<'EOF'
[local]
name = Kylin Local
baseurl = file:///mnt
gpgcheck = 0
enabled = 1
EOF
dnf clean all && dnf makecache
2.2 桌面版(DEB 系)#
# 改源前必做:备份(带时间戳,可回滚)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak.$(date +%s)
# 换国内镜像(以中科大 kylin-cas 源为例;SP 版本不同地址不同)
sudo nano /etc/apt/sources.list
# 内容参考(x86_64):
# deb https://mirrors.ustc.edu.cn/kylin-cas/ kylin main restricted universe multiverse
# deb https://mirrors.ustc.edu.cn/kylin-cas/ kylin-security main restricted universe multiverse
# deb https://mirrors.ustc.edu.cn/kylin-cas/ kylin-updates main restricted universe multiverse
sudo apt update && sudo apt upgrade -y
# 依赖损坏时不要手动强装:
sudo apt --fix-broken install
# deb 包安装缺依赖:
sudo dpkg -i xxx.deb && sudo apt -f install
要点:
- 不同 SP 版本的源地址不同,别照抄——先看系统自带源的原始格式,只换域名;
- 桌面版部分麒麟定制组件(如 kylin-installer、kylin-upgrade)只在麒麟官方源里有,只配 Ubuntu 源会丢;
- 公钥过期导致报错时,重新导入麒麟官方公钥,别盲目加
[trusted=yes]。
03 系统故障定位#
麒麟与主流发行版同源,通用诊断命令直接可用;另需注意麒麟特有的 kysec 与国产硬件驱动问题。
3.1 系统无法启动——分级抢救#
- 记录启动画面卡住的位置(挂载 / 服务 / 驱动加载)。
- GRUB 启动菜单按 e,在 linux 行末尾追加
systemd.unit=rescue.target,Ctrl+X 进入救援模式(麒麟同 GRUB2,操作一致)。 - 进救援模式后先验证 fstab、再读日志。
findmnt --verify # 校验 fstab("启动卡死"最常见根因)
mount -a
journalctl -xb | tail -80 # 本次启动日志
dmesg -T | tail -50 # 内核日志
systemctl list-units --failed
3.2 麒麟常见”起不来/异常”根因#
| 现象 | 根因 | 第一动作 |
|---|---|---|
| 启动卡在挂载/进入维护模式 | fstab 中 UUID/路径错误 | findmnt —verify,修 fstab(改前备份) |
| 执行程序/脚本提示”权限不足” | kysec 执行控制阻止未认证文件 | getstatus 看状态,见第 11 章 |
| 进程 kill 不掉 / 文件删不掉 | kysec 进程防杀死 / 文件防篡改 | 安全中心关闭对应防护 |
| SSH 失联但机器活着 | sshd / 防火墙 / 网络 | ss -tlnp | grep 22、systemctl status sshd |
| 开机后图形界面异常/黑屏 | 国产显卡驱动问题(桌面版高发) | journalctl 查 xorg/wayland 日志,重装驱动 |
| 系统 OOM / 进程被杀 | 内存耗尽 | dmesg | grep -i oom |
3.3 通用诊断工具箱(麒麟同样适用)#
journalctl -u 服务名 -n 100 --no-pager
journalctl --since "10 minutes ago"
last -x | head -20 # 重启/崩溃记录
strace -f -o /tmp/svc.log -p 1234 # 进程行为异常时跟踪
lsof -i :3306 # 端口占用
04 systemd 服务管理#
麒麟服务器版与桌面版均使用 systemd,unit 语法与命令与主流发行版完全一致,可直接套用。
systemctl status 服务名
systemctl enable --now 服务名
systemctl daemon-reload # 改 unit 后必须执行
systemctl cat 服务名
systemd-analyze blame / critical-chain # 找启动慢点
# /etc/systemd/system/myapp.service(麒麟可直接使用)
[Unit]
Description=My Application
After=network-online.target
[Service]
Type=simple
User=app
ExecStart=/usr/local/bin/myapp
Restart=on-failure # 崩溃自愈
RestartSec=5
StartLimitBurst=5 # 防重启风暴,与 Restart 配套
StartLimitIntervalSec=30
MemoryMax=512M
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
提示:麒麟服务器版上如果服务莫名起不来,除了看 journalctl -u 服务名,还要留神 kysec——服务可执行文件若被安全策略限制,systemd 启动会失败(报权限类错误),排查方法见第 11 章。
05 网络排障#
分层排查:连通性 → DNS → 端口监听 → 防火墙 → 抓包。防火墙命令按版本区分。
5.1 双系命令#
服务器版(RHEL 系风格)
systemctl status firewalld
firewall-cmd --list-all
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
# 底层同样是 nftables
nft list ruleset
桌面版(Ubuntu 系风格)
sudo ufw status verbose
sudo ufw allow 8080/tcp
sudo ufw enable
# 网络管理多为 NetworkManager
nmcli device status
nmcli connection show
5.2 经典场景:端口明明监听,外部连不上#
# 1) 监听地址对不对?(127.0.0.1 则外部连不上)
ss -tlnp | grep 8080
# 2) 本机通不通
curl -v http://127.0.0.1:8080
# 3) 防火墙放行了吗(按版本选命令,见上)
# 4) 还没通就抓包看 SYN
tcpdump -i eth0 port 8080 -nn -c 50
规律:「本机 curl 通、外部不通」→ 优先查监听地址与防火墙;「本机都不通」→ 查服务是否活着;信创环境还要注意国产网卡驱动的 offload 特性偶发丢包问题。
06 性能分析#
分析框架用 USE 方法(使用率 / 饱和度 / 错误),命令与主流发行版一致,仅安装方式分双系。
# 安装 sysstat 工具箱
dnf install -y sysstat # 服务器版
sudo apt install sysstat # 桌面版
# CPU
top -c ; mpstat -P ALL 1 ; ps aux --sort=-%cpu | head ; perf top
# 内存(重点看 available 与 swap/si-so,别只看 used)
free -h ; vmstat 1 ; smem -tk | sort -k2 -rn | head
dmesg | grep -i oom
# 磁盘 IO
iostat -x 1 ; iotop
# 网络吞吐
iftop ; nload ; nethogs
误区提醒:buff/cache 大 ≠ 内存不足,看 available 列;swap 持续读写(si/so 非零)+ OOM 日志才是内存压力的实锤。服务器版文件系统为 xfs,分析 IO 时注意 xfs 的缓存行为与 ext4 不同。
07 存储与磁盘#
注意默认文件系统差异:服务器版默认 xfs(只能扩不能缩),桌面版默认 ext4。
lsblk -f # 磁盘/分区/文件系统/挂载点/UUID 一屏看清
df -hT
blkid
findmnt --verify # fstab 校验
du -sh /var/log/* # 找占用大户
7.1 LVM 磁盘扩容全流程(服务器版常见)#
⚠️ 扩容前务必先快照/备份;扩容中断电=数据风险
fdisk -l /dev/sda # 确认底层盘已扩大(虚拟机/物理机层面先扩)
pvresize /dev/sda2 # 1) PV 吸收新增空间
pvs
lvextend -l +100%FREE /dev/vg/data # 2) 逻辑卷扩满
# 3) 文件系统扩容——按类型选!
xfs_growfs /mount/point # xfs(服务器版):按挂载点
resize2fs /dev/vg/data # ext4(桌面版):按设备
df -hT # 4) 验证
⚠️ 高危:xfs 文件系统不支持缩容;ext4 缩容也建议卸载后离线做。任何分区/格式化/缩容操作,先备份,再操作,再验证。
08 备份与恢复#
备份是运维最后一道防线。麒麟支持的主流方式与 RHEL/Ubuntu 一致,这里讲三套方案:系统级打包、LVM 快照(在线一致备份)、文件级恢复。
8.1 系统级打包(最省事)#
# 系统整盘级备份(排除伪文件系统与运行时目录)
tar --numeric-owner -czpvf /backup/kylin-system-$(date +%F).tar.gz \
--exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp \
--exclude=/run --exclude=/mnt --exclude=/media \
--exclude=/var/cache --exclude=/backup /
# 更常用:只备份关键目录
tar -czpvf /backup/etc-home-$(date +%F).tar.gz /etc /home /root
# 每天 02:00 备份 /etc 与 /home,保留 7 天
0 2 * * * tar -czpvf /backup/etc-home-$(date +\%F).tar.gz /etc /home \
&& find /backup -name "*.tar.gz" -mtime +7 -delete
8.2 LVM 快照(在线一致备份,服务器版首选)#
# 前提:卷组有剩余空间
vgs
lvcreate -L 10G -s -n snap_data /dev/vg/data # 创建快照
mount /dev/vg/snap_data /mnt/snap # 挂载快照(只读)
tar -czpvf /backup/data-snap-$(date +%F).tar.gz /mnt/snap
umount /mnt/snap
lvremove /dev/vg/snap_data # 用完即删
8.3 恢复(备份的价值在于能恢复)#
# 文件级恢复
tar -xzpvf /backup/etc-home-2026-10-27.tar.gz -C /
# 只恢复单个文件
tar -xzpvf /backup/etc-home-2026-10-27.tar.gz -C / etc/ssh/sshd_config
⚠️ 提醒:备份必须定期做恢复演练;异地/异盘再存一份;LVM 快照与源数据在同一块盘上,不能替代异地备份。
09 Shell 脚本规范#
与主流发行版一致,唯一注意:麒麟环境(尤其 kysec 开启时)对脚本文件的执行控制更严格。
#!/usr/bin/env bash
set -euo pipefail
LOG=/var/log/myjob.log
log(){ echo "[$(date '+%F %T')] $*" | tee -a "$LOG"; }
die(){ log "FATAL: $*"; exit 1; }
[[ $# -eq 1 ]] || die "用法: $0 <目录>"
[[ -d "$1" ]] || die "目录不存在: $1"
backup="${1}.bak.$(date +%s)"
cp -r "$1" "$backup" || die "备份失败"
do_something || die "核心步骤失败"
log "完成"
bash -n script.sh # 语法检查
bash -x script.sh # 调试
shellcheck script.sh # 静态检查(服务器版 dnf install shellcheck / 桌面版 apt install shellcheck)
麒麟专属注意:脚本从外部拷贝/下载到麒麟上执行提示”权限不足”时,不是 chmod 问题——是 kysec 执行控制拦截了未认证脚本,处理见第 11 章(改软模式或添加到白名单)。
10 Docker 运维#
麒麟服务器版是信创环境容器化主阵地;注意架构(x86_64 / aarch64)决定镜像与源。
# 安装(优先麒麟源自带的 docker 包;或配置 docker-ce 官方源,注意架构)
dnf install -y docker-ce docker-ce-cli containerd.io # 服务器版(docker-ce 源)
sudo apt install docker.io docker-compose # 桌面版
systemctl enable --now docker
# 排障命令(与主流发行版一致)
docker ps -a
docker logs -f --tail 100 容器名
docker inspect -f '{{.State.ExitCode}}' 容器名
docker stats
docker events --since 1h
docker system df
| 现象 | 排查路径 |
|---|---|
| 容器一启动就退(Exited) | docker logs 看应用报错;退出码 137=被杀(多为 OOM),1=应用错误 |
| 容器被杀 / OOM | dmesg | grep -i oom;docker stats 看内存;调 —memory |
| 端口不通 | docker ps 看映射;进容器 curl 127.0.0.1;宿主机 ss -tlnp;防火墙放行 |
| 磁盘被占满 | docker system df → docker system prune |
麒麟专属注意:kysec 的联网控制(netctl)可能拦截容器对外访问;进程防杀死(ppro)可能影响容器内进程管理。容器行为异常且日志无报错时,先查 kysec 状态。
11 KYSEC 安全机制(麒麟专属,运维必修)#
KYSEC 是麒麟安全增强框架,基于安全标记对执行程序、脚本、共享库、内核模块做保护与管控。它造成的故障现象非常像”权限问题”,但根因完全不同——这是麒麟排障最大的分水岭。
11.1 三种安全模式#
| 模式 | 行为 | 典型影响 |
|---|---|---|
| normal(强制模式) | 违规操作被阻止并审计记录 | 外部程序/脚本/新编译的文件直接执行失败 |
| warning(警告模式) | 弹出麒麟安全授权认证框,授权后可执行 | 频繁弹窗 |
| softmode(软模式) | 只审计记录,不阻止 | 能跑但留日志 |
11.2 核心命令#
# 查看当前 kysec 状态(第一动作)
getstatus
# 修改状态(命令形态随版本/架构略有差异,以官方《安全中心用户手册》为准)
# 桌面版常见形式:
sudo setstatus softmode # 切软模式(只审计不阻止)
sudo setstatus normal # 切强制模式(默认)
sudo setstatus enable # 开启安全功能
# 服务器版安全中心手册形式:
setstatus kysec -s permissive # 切宽松模式
setstatus kysec -s permissive -t # 临时生效(重启恢复原状)
setstatus kysec -s enforcing # 切强制模式(提示重启才生效)
# 子功能管控(执行/联网/进程/文件/内核模块)
sudo setstatus -f exectl off # 关闭执行控制(外部程序能跑了)
sudo setstatus -f netctl off # 关闭联网控制
sudo setstatus -f ppro off # 关闭进程防杀死
sudo setstatus -f fpro off # 关闭文件保护(防篡改)
sudo setstatus -f kmod off # 关闭内核模块防卸载
# 查看/设置安全标记(高级)
kysec_get 文件路径
kysec_set -n exectl -v 标记值 文件路径 # strict 模式下需切 secadm 用户
11.3 麒麟官方 FAQ 中的 KYSEC 典型故障与解法#
| 现象 | 根因 | 解法 |
|---|---|---|
| 执行程序/脚本提示”权限不够”(chmod 777 也没用) | exectl 执行控制阻止未认证/已篡改文件 | getstatus 查看;切 softmode,或到安全中心→应用防护→执行控制 将文件认证/加白名单 |
| 出现执行控制授权弹窗 | warning 模式下文件被篡改/损坏 | 查安全中心→高级配置中文件状态:被篡改→重新认证;损坏→重装对应包 |
| 进程 kill 不掉(kill -9 无效) | ppro 进程防杀死 | 安全中心→进程防杀死列表,关闭该进程防护 |
| 文件删不掉 | fpro 文件防篡改 | 安全中心→文件防篡改列表,解除后再删 |
| 内核模块无法卸载 | kmod 防卸载 | 安全中心→内核模块防卸载,关闭开关 |
| 无法开启联网控制/执行控制等功能 | kysec 处于 softmode 时功能项无法开启 | setstatus enable 后再开启 |
11.4 KYSEC 排障流程#
getstatus确认 kysec 模式- 对号入座:权限不足/杀不掉/删不掉/装不上?
- 选解法:切模式 or 关子功能 or 加白名单
- 验证:程序能跑/进程能杀/文件能删
- 恢复策略:业务正常后评估是否恢复强制模式
⚠️ 风险提醒:关闭 kysec 或切软模式会降低系统安全等级,涉及等保合规环境时需评估审批;改动前记录 getstatus 原值,便于回滚;优先选择「加白名单/认证文件」这类最小侵入方案,而不是整体关闭。
12 通用排障流程框架#
无论什么故障,按流程走,避免”拆盲盒式”乱试。
- 收集信息:版本/报错/日志/变更
- 形成假设:基于日志定根因
- 最小验证:只读命令验证
- 修复 + 回滚:备份→修改→记原值
- 验证生效:确认无副作用
- 复盘沉淀:补监控、入库
# 修改-回滚通用范式(以 nginx.conf 为例)
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak.$(date +%s) # 1) 备份
vim /etc/nginx/nginx.conf # 2) 修改
nginx -t # 3) 语法校验
systemctl reload nginx # 4) reload 优先,不断服务
# 回滚:恢复备份文件再 reload
cp /etc/nginx/nginx.conf.bak.xxx /etc/nginx/nginx.conf
nginx -t && systemctl reload nginx
黄金原则:能 reload 不 restart;能改配置不动数据;改任何东西前想 3 秒”怎么改回去”。麒麟环境额外加一条:业务异常先看 getstatus,再谈其它。
13 安全加固清单#
信创环境常涉及等保合规,以下是通用基线(最小必要),按实际需求启用,别一刀切。
13.1 SSH 加固#
# /etc/ssh/sshd_config 关键项
PermitRootLogin no # 禁止 root 直接登录
PasswordAuthentication no # 禁用密码登录(配合密钥)
PubkeyAuthentication yes
MaxAuthTries 3 # 限制尝试次数
AllowUsers ops user1 # 白名单
# 改完先另开一个会话确认能登,再重载
sshd -t && systemctl reload sshd
13.2 密码策略与账户#
# 密码最长有效期(RHEL 系,桌面版路径 /etc/login.defs 同源)
sed -i 's/^PASS_MAX_DAYS.*/PASS_MAX_DAYS 90/' /etc/login.defs
# 强制下次登录改密
chage -d 0 用户名
# 锁定 / 解锁账户
passwd -l 用户名 ; passwd -u 用户名
# 检查空密码账户(安全红线)
awk -F: '($2==""){print $1}' /etc/shadow
13.3 sudoers 最小授权#
sudo visudo
# 只给特定命令,别给 ALL
ops ALL=(root) NOPASSWD: /usr/bin/systemctl, /usr/sbin/service
# 检查并删除宽泛规则(NOPASSWD: ALL 这类)
sudo grep -rE "NOPASSWD:\s*ALL" /etc/sudoers /etc/sudoers.d/
13.4 审计(auditd)#
dnf install -y audit audit-libs # 服务器版
systemctl enable --now auditd
auditctl -a always,exit -F arch=b64 -S execve -k exec_cmd # 记录命令执行
ausearch -k exec_cmd | tail -20 # 查看审计
13.5 一分钟自检#
systemctl list-units --failed # 失败服务
passwd -S 用户名 # 密码状态
ss -tlnp | grep -E ':(22|3306|6379)' # 端口暴露面
awk -F: '($2==""){print $1}' /etc/shadow # 空密码账户
14 内核与启动管理#
启动参数、内核模块、多内核回滚,是排障和升级时的常客。
14.1 GRUB 启动参数#
cat /proc/cmdline # 当前生效参数
# 永久修改:编辑 /etc/default/grub 的 GRUB_CMDLINE_LINUX
# 例:串口控制台 + 关闭 IPv6
GRUB_CMDLINE_LINUX="... console=ttyS0,115200 ipv6.disable=1"
# 重新生成引导配置(两系路径不同)
grub2-mkconfig -o /boot/grub2/grub.cfg # 服务器版(UEFI 机器用 /boot/efi/.../grub.cfg)
sudo update-grub # 桌面版
# 临时进救援/单用户:GRUB 菜单按 e,改 linux 行
14.2 内核模块管理#
lsmod | grep 模块名 # 已加载
modinfo 模块名 # 模块信息
modprobe 模块名 # 加载
modprobe -r 模块名 # 卸载
# 开机自动加载
echo "模块名" >> /etc/modules-load.d/自定义.conf
# 屏蔽某模块
echo "blacklist 模块名" > /etc/modprobe.d/blacklist-自定义.conf
14.3 多内核管理与回滚#
uname -r # 当前内核
rpm -qa | grep kernel # 已装内核(服务器版)
dpkg --list | grep linux-image # 桌面版
# 设置默认启动内核(服务器版)
grubby --set-default=/boot/vmlinuz-xxx
⚠️ 提醒:升级内核后新内核异常时,重启在 GRUB 选旧内核即可回滚;确认稳定前别急着删旧内核包。
15 日志管理#
journald + rsyslog + logrotate 三者分工:采集、转发、轮转。日志既是排障工具也是审计依据。
15.1 journald 持久化(默认日志只在内存,重启丢失)#
mkdir -p /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal
# 限制体积:编辑 /etc/systemd/journald.conf
# SystemMaxUse=2G
systemctl restart systemd-journald
15.2 常用查询#
journalctl -u 服务名 --since today
journalctl -p err -b # 本次启动的错误级日志
journalctl --list-boots # 历史启动列表
journalctl -b -1 # 上一次启动的日志
15.3 logrotate 轮转#
# /etc/logrotate.d/自定义
/var/log/myapp/*.log {
daily
rotate 14
compress
missingok
notifempty
copytruncate
}
# 手动测试:-d 为调试(只打印不执行)
logrotate -d /etc/logrotate.conf
logrotate -f /etc/logrotate.conf
16 监控与告警#
轻量方案用 node_exporter + Prometheus + Grafana,重一点直接用 Zabbix。麒麟服务器版都能跑。
16.1 node_exporter(服务器版示例)#
# 下载二进制(按架构选 amd64 / arm64)
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar xzf node_exporter-*.tar.gz && cp node_exporter-*/node_exporter /usr/local/bin/
# systemd 托管
cat > /etc/systemd/system/node_exporter.service <<'EOF'
[Unit]
Description=Node Exporter
After=network.target
[Service]
ExecStart=/usr/local/bin/node_exporter --web.listen-address=:9100
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl enable --now node_exporter
curl http://127.0.0.1:9100/metrics | head # 验证
- Prometheus 抓取配置加一个 job,Grafana 导入 1860 号模板即可出大盘。
- 防火墙记得放行 9100(见第 5 章)。
16.2 Zabbix(备选)#
dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent2
- 麒麟同源一般带 zabbix 包,或配置官方源(注意 aarch64 架构)。
- 常用监控项:CPU、内存、磁盘、进程、端口、自定义 key。
⚠️ 提醒:监控只解决”发现”,告警路由(飞书/钉钉/企业微信 webhook)配好才算闭环。
17 国产硬件适配#
信创环境最常踩的坑集中在架构、驱动、固件三块。
17.1 架构识别与选包#
uname -m # x86_64 / aarch64 / loongarch64 等
lscpu | grep -E "Architecture|Model name"
- 常见芯片:鲲鹏 920(arm64)、飞腾 FT-2000/D2000(arm64)、海光(x86 兼容)、兆芯(x86 兼容)、龙芯(loongarch64,生态最窄)。
- 选软件、容器镜像、驱动一律先看架构,别把 amd64 当通用。
17.2 网卡 / 显卡驱动#
lspci -nnk | grep -iA2 vga # 显卡是否识别、用哪个驱动
lspci -nnk | grep -iA2 ethernet # 网卡是否识别、用哪个驱动
- 网卡(兆芯/中兴/盛科等):先看
lspci -nnk是否识别,缺失再装厂商 rpm/deb。 - 显卡(桌面版高发):journalctl 查 xorg/wayland 报错;优先装系统源里的驱动包,别从官网乱装。
17.3 固件 / 散热类问题#
sensors # 温度(需安装 lm_sensors)
cat /sys/class/thermal/thermal_zone*/temp # 温度原始值
- 开机黑屏/不引导:先确认 BIOS 相关开关(CSM、Secure Boot),arm 机型注意引导方式。
- 异常降频:优先查温度和电源策略。
18 常用应用部署#
信创环境最常见的三类应用部署速查(Nginx / MySQL / Redis),两系命令都给出。
18.1 Nginx#
dnf install -y nginx && systemctl enable --now nginx # 服务器版
sudo apt install -y nginx && sudo systemctl enable --now nginx # 桌面版
# 配置校验 + 重载(不改动也不断服务)
nginx -t && systemctl reload nginx
18.2 MySQL / MariaDB#
dnf install -y mariadb-server
systemctl enable --now mariadb
mysql_secure_installation # 初始化安全设置
# 建库建用户
mysql -uroot -p -e "CREATE DATABASE appdb CHARACTER SET utf8mb4; CREATE USER 'app'@'localhost' IDENTIFIED BY 'StrongPass123'; GRANT ALL ON appdb.* TO 'app'@'localhost';"
18.3 Redis#
dnf install -y redis
systemctl enable --now redis
redis-cli ping # 验证 PONG
# 生产必改:/etc/redis/redis.conf
# bind 127.0.0.1
# requirepass 你的强密码
systemctl restart redis
⚠️ 部署原则:默认最小开放、端口防火墙只放内网来源、服务用 systemd 托管并设 Restart。
19 常见问题 FAQ#
Q1 安装软件报 “There are no enabled repos”?
软件源未配置。先 dnf repolist / apt update 看源状态,按第 2 章配置。
Q2 程序提示”权限不足”,chmod 777 也没用?
大概率是 KYSEC 执行控制。getstatus 确认,优先加白名单,见第 11 章。
Q3 服务器版能用 apt 吗 / 桌面版能用 dnf 吗? 不能混用。桌面版兼容 yum 命令(内部转 apt),但真正排障用 apt 系命令,见第 1 章。
Q4 启动卡在挂载 / 进维护模式怎么办?
findmnt --verify 查 fstab,改前备份,见第 3 章。
Q5 端口监听了但外部连不上? 查监听地址(127.0.0.1 vs 0.0.0.0)和防火墙,见第 5 章。
Q6 xfs 能缩容吗? 不能,xfs 只支持扩容;缩容要重建文件系统,先备份,见第 7 章。
Q7 Docker 容器一启动就退出?
docker logs 看应用报错;退出码 137 多为 OOM,见第 10 章。
Q8 怎么知道系统是 x86 还是 arm?
uname -m,x86_64 / aarch64 决定软件源与软件包架构,见第 1 章、第 17 章。
Q9 升级内核后系统起不来? GRUB 选旧内核回滚,确认稳定再删旧包,见第 14 章。
Q10 日志重启后就丢了? journald 默认不持久化,配置持久化目录,见第 15 章。
Q11 新程序每次执行都弹安全授权框? KYSEC 处于 warning 模式,将程序认证或加白名单,见第 11 章。
Q12 备份恢复后没效果 / 报错? 先确认恢复路径与权限;备份要定期做恢复演练,见第 8 章。
20 命令速查总表#
| 场景 | 服务器版(RPM) | 桌面版(DEB) |
|---|---|---|
| 查版本 | cat /etc/os-release · nkvers | cat /etc/os-release |
| 装软件 | dnf install 包 | sudo apt install 包 |
| 查/配源 | /etc/yum.repos.d/ · dnf makecache | /etc/apt/sources.list · apt update |
| 防火墙 | firewall-cmd —list-all | sudo ufw status |
| 失败服务 | systemctl list-units —failed(两系一致) | |
| 引导日志 | journalctl -xb · dmesg -T | |
| 端口/监听 | ss -tlnp · lsof -i :端口 | |
| 抓包 | tcpdump -i eth0 port 80 -nn | |
| CPU/内存 | top · mpstat -P ALL 1 · free -h · vmstat 1 | |
| 磁盘/分区 | lsblk -f · df -hT · blkid | |
| LVM 扩容 | pvresize→lvextend→xfs_growfs | pvresize→lvextend→resize2fs |
| 脚本检查 | bash -n · bash -x · shellcheck | |
| Docker | docker ps -a · docker logs -f · docker inspect | |
| KYSEC 状态 | getstatus · setstatus(两系均有,命令形态见第 11 章) | |
| 备份恢复 | tar -czpvf · lvcreate -s 快照 · tar -xzpvf(两系通用) | |
| 安全加固 | sshd -t · auditctl · ausearch | sudo visudo · sudo passwd |
| 内核参数 | grub2-mkconfig -o … | sudo update-grub |
| 日志管理 | journalctl —list-boots · logrotate -f(两系一致) | |
| 监控告警 | curl :9100/metrics · zabbix_get(两系一致) | |
| 架构识别 | uname -m · lspci -nnk | uname -m |
| 应用部署 | dnf install nginx/mariadb/redis | apt install nginx/mariadb-server/redis |
官方资源(建议收藏)#
- 麒麟软件官网:kylinos.cn(产品文档、安全中心用户手册、常见问题 PDF)
- 官方软件源:update.cs2c.com.cn / archive.kylinos.cn / archive2.kylinos.cn
- 社区:openKylin(openkylin.top)开源社区
《银河麒麟操作系统运维实战手册》· 基于 Linux Ops Expert 实战经验 + 麒麟官方文档整理 · 命令形态随版本/架构略有差异,以官方手册与实际输出为准
📑 文章目录(58 节)
- 目录#
- 01 版本识别——动手前先分清两套生态#
- 1.1 产品线速览#
- 1.2 识别命令(三行定乾坤)#
- 02 软件源与软件包管理#
- 2.1 服务器版(RPM 系)#
- 2.2 桌面版(DEB 系)#
- 03 系统故障定位#
- 3.1 系统无法启动——分级抢救#
- 3.2 麒麟常见”起不来/异常”根因#
- 3.3 通用诊断工具箱(麒麟同样适用)#
- 04 systemd 服务管理#
- 05 网络排障#
- 5.1 双系命令#
- 5.2 经典场景:端口明明监听,外部连不上#
- 06 性能分析#
- 07 存储与磁盘#
- 7.1 LVM 磁盘扩容全流程(服务器版常见)#
- 08 备份与恢复#
- 8.1 系统级打包(最省事)#
- 8.2 LVM 快照(在线一致备份,服务器版首选)#
- 8.3 恢复(备份的价值在于能恢复)#
- 09 Shell 脚本规范#
- 10 Docker 运维#
- 11 KYSEC 安全机制(麒麟专属,运维必修)#
- 11.1 三种安全模式#
- 11.2 核心命令#
- 11.3 麒麟官方 FAQ 中的 KYSEC 典型故障与解法#
- 11.4 KYSEC 排障流程#
- 12 通用排障流程框架#
- 13 安全加固清单#
- 13.1 SSH 加固#
- 13.2 密码策略与账户#
- 13.3 sudoers 最小授权#
- 13.4 审计(auditd)#
- 13.5 一分钟自检#
- 14 内核与启动管理#
- 14.1 GRUB 启动参数#
- 14.2 内核模块管理#
- 14.3 多内核管理与回滚#
- 15 日志管理#
- 15.1 journald 持久化(默认日志只在内存,重启丢失)#
- 15.2 常用查询#
- 15.3 logrotate 轮转#
- 16 监控与告警#
- 16.1 node_exporter(服务器版示例)#
- 16.2 Zabbix(备选)#
- 17 国产硬件适配#
- 17.1 架构识别与选包#
- 17.2 网卡 / 显卡驱动#
- 17.3 固件 / 散热类问题#
- 18 常用应用部署#
- 18.1 Nginx#
- 18.2 MySQL / MariaDB#
- 18.3 Redis#
- 19 常见问题 FAQ#
- 20 命令速查总表#
- 官方资源(建议收藏)#