前言:国产化操作系统核心价值与文档定位
麒麟操作系统(Kylin OS V10)作为国产操作系统标杆,广泛应用于政务、金融、工业制造等关键领域。本文聚焦企业级部署需求,从基础系统操作到高阶自动化脚本,再到工业场景 MES 迁移部署,提供 “步骤化 + 可复用 + 避坑指南” 的全流程技术方案,适用于运维工程师、开发人员及国产化项目实施团队。
第一部分:麒麟 OS 基础操作(夯实底层能力)
一、麒麟 OS 安装全流程(x86/ARM 双架构适配)
1. 安装前置准备
架构 | 硬件要求 | 镜像文件 |
x86_64 | CPU≥2 核、内存≥4G、磁盘≥50G | Kylin-Server-10-SP3-x86_64.iso |
ARM/aarch64 | 华为鲲鹏 920 / 飞腾 2000+、内存≥8G | Kylin-Server-10-SP3-aarch64.iso |
- 制作启动 U 盘:使用麒麟官方工具Kylin ISO Burner或dd命令
# dd命令制作(Linux环境) dd if=Kylin-Server-10-SP3-x86_64.iso of=/dev/sdb bs=4M status=progress |
2. 图形化安装步骤(企业级配置)
- 开机从 U 盘启动,选择 “Install Kylin OS V10”
- 语言选择:中文(默认 UTF-8 编码,适配国产化应用)
- 磁盘分区(推荐方案):
- /boot:512M(ext4,引导分区)
- /swap:内存 2 倍(最大 8G,交换分区)
- /:剩余空间(xfs,根分区,支持大文件)
- /data:单独分区(存储应用数据,便于管理)
- 网络配置:设置静态 IP(生产环境必备)
- root 密码:需包含大小写字母 + 数字 + 特殊字符(符合国产化安全规范)
- 安装完成后重启,执行hostnamectl set-hostname kylin-mes修改主机名
二、麒麟 OS 核心操作(快捷键 + 命令)
1. 高效快捷键(提升运维效率)
快捷键 | 功能描述 | 适用场景 |
Ctrl+Alt+F1-F6 | 切换字符终端(F7 返回图形界面) | 图形界面崩溃时应急操作 |
Ctrl+Shift+T | 终端多标签页 | 多任务并行操作 |
Alt+Tab | 窗口切换 | 多应用切换 |
Ctrl+R | 搜索历史命令 | 快速复用复杂命令 |
Tab | 命令 / 路径补全(麒麟增强版支持模糊补全) | 减少输入错误 |
Ctrl+C | 终止当前进程 | 脚本执行异常时中断 |
2. 必学核心命令(按场景分类)
(1)系统状态查询
# 查看系统版本(麒麟特有) cat /etc/kylin-release # 查看CPU信息(区分x86/ARM) lscpu # 内存使用情况 free -h # 磁盘占用 df -h # 进程监控(麒麟自带nmon工具,更直观) nmon # 按C看CPU,M看内存,D看磁盘 |
(2)文件 / 目录操作
# 递归创建目录(如MES部署目录) mkdir -p /opt/mes/{app,data,log,backup} # 复制文件并保留权限(关键!) cp -a /src/* /dest/ # 查找MES相关文件 find / -name "mes*" -type f # 统计目录大小 du -sh /opt/mes/ |
(3)服务管理(systemctl 核心用法)
# 启动/停止/重启服务 systemctl start nginx systemctl stop nginx systemctl restart nginx # 设置开机自启(生产环境必备) systemctl enable nginx # 查看服务状态(含日志) systemctl status nginx -l # 查看监听端口(麒麟增强版ss命令) ss -tulnp | grep 8080 |
三、vim 编辑器实战(国产化环境配置)
1. 基础操作(快速上手)
模式 | 操作命令 | 功能描述 |
普通模式 | i/a/o | 进入插入模式(i 行首 /a 行尾 /o 下行) |
普通模式 | :wq | 保存并退出 |
普通模式 | :q! | 强制退出(不保存) |
普通模式 | dd | 删除当前行 |
普通模式 | yy/p | 复制 / 粘贴当前行 |
普通模式 | / 关键词 | 向下搜索关键词 |
插入模式 | Ctrl+u/Ctrl+d | 向上 / 向下翻页 |
2. 企业级 vim 配置(永久生效)
编辑配置文件:vim ~/.vimrc,添加以下内容(适配国产化编码和开发习惯)
set number " 显示行号(排错必备) set encoding=utf-8 " 适配中文编码 set tabstop=4 " Tab键缩进4格 set shiftwidth=4 " 自动缩进4格 set autoindent " 自动缩进 set hlsearch " 搜索结果高亮 set ignorecase " 搜索不区分大小写 set cursorline " 高亮当前行 syntax on " 语法高亮(支持shell/sql等) |
生效:source ~/.vimrc,或重新打开 vim 即可。
第二部分:麒麟 OS 进阶管理(企业级必备)
一、用户与组管理(权限隔离核心)
1. 基础命令(创建 / 修改 / 删除)
# 创建MES项目组 groupadd mesgroup # 创建MES专用用户(加入组,不允许登录shell) useradd -g mesgroup -s /sbin/nologin mesuser # 设置密码 passwd mesuser # 修改用户所属组 usermod -aG mesgroup otheruser # 删除用户(连同家目录) userdel -r mesuser # 查看用户信息 id mesuser # 查看组内用户 groups mesgroup |
2. 企业级权限控制案例(MES 部署场景)
需求:MES 应用目录/opt/mes仅允许 mesuser 用户读写,其他用户无权限
# 递归修改目录所属用户组 chown -R mesuser:mesgroup /opt/mes/ # 设置权限(用户rwx,组rwx,其他---) chmod -R 770 /opt/mes/ # 特殊权限:仅mesuser可删除目录下文件(防止误删) chmod -R +t /opt/mes/data/ # 验证权限 ls -ld /opt/mes/ |
二、磁盘管理(基础 + 高阶)
1. 基础磁盘操作(分区 / 格式化 / 挂载)
# 查看磁盘列表(麒麟特有lsblk,更直观) lsblk # 分区(fdisk示例,/dev/sdb) fdisk /dev/sdb > n(新建分区)→ p(主分区)→ 1(分区号)→ 回车(默认起始扇区)→ +100G(分区大小)→ w(保存) # 格式化(xfs文件系统,麒麟推荐) mkfs.xfs /dev/sdb1 # 临时挂载 mount /dev/sdb1 /opt/mes/data/ # 永久挂载(重启不失效) echo "/dev/sdb1 /opt/mes/data xfs defaults 0 0" >> /etc/fstab # 验证挂载 mount -a && df -h |
2. 高阶磁盘管理(LVM 逻辑卷 + RAID)
(1)LVM 逻辑卷(动态扩容,企业必备)
# 创建物理卷 pvcreate /dev/sdb1 /dev/sdc1 # 创建卷组(命名为mes_vg) vgcreate mes_vg /dev/sdb1 /dev/sdc1 # 创建逻辑卷(大小50G,命名为mes_lv) lvcreate -L 50G -n mes_lv mes_vg # 格式化并挂载 mkfs.xfs /dev/mes_vg/mes_lv mount /dev/mes_vg/mes_lv /opt/mes/data/ # 扩容逻辑卷(新增20G) lvextend -L +20G /dev/mes_vg/mes_lv xfs_growfs /dev/mes_vg/mes_lv # xfs文件系统扩容 |
(2)RAID 1(双盘冗余,数据安全)
# 安装mdadm工具 dnf install -y mdadm # 创建RAID 1(/dev/sdb1和/dev/sdc1) mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 # 格式化并挂载 mkfs.xfs /dev/md0 mount /dev/md0 /opt/mes/backup/ # 查看RAID状态 mdadm --detail /dev/md0 |
三、shell 脚本实战(自动化运维)
1. 基础脚本示例(日志备份脚本)
#!/bin/bash # 脚本功能:自动备份MES日志,保留7天 # 作者:技术团队 # 日期:2024-05-20 # 定义变量 LOG_DIR="/opt/mes/log" BACKUP_DIR="/opt/mes/backup/log" DATE=$(date +%Y%m%d) RETENTION=7 # 创建备份目录 [ ! -d $BACKUP_DIR ] && mkdir -p $BACKUP_DIR # 压缩备份 tar -zcvf $BACKUP_DIR/mes_log_$DATE.tar.gz $LOG_DIR/*.log # 删除7天前的备份 find $BACKUP_DIR -name "mes_log_*.tar.gz" -mtime +$RETENTION -delete # 输出执行结果 if [ $? -eq 0 ]; then echo "[$(date +%Y-%m-%d %H:%M:%S)] MES日志备份成功" >> $BACKUP_DIR/backup.log else echo "[$(date +%Y-%m-%d %H:%M:%S)] MES日志备份失败" >> $BACKUP_DIR/backup.log fi |
执行权限:chmod +x backup_mes_log.sh,定时任务:0 0 * * * /opt/mes/backup_mes_log.sh
2. 进阶脚本(MES 环境检查脚本)
#!/bin/bash # 功能:检查MES部署所需的系统资源、端口、依赖库 # 检查CPU核心数 CPU_CORES=$(lscpu | grep "CPU(s):" | head -1 | awk '{print $2}') if [ $CPU_CORES -lt 4 ]; then echo "警告:CPU核心数不足4核,可能影响MES运行" fi # 检查内存 MEM_TOTAL=$(free -g | grep "Mem:" | awk '{print $2}') if [ $MEM_TOTAL -lt 8 ]; then echo "警告:内存不足8G,建议扩容" fi # 检查端口占用(8080/3306/5236) PORTS=(8080 3306 5236) for PORT in ${PORTS[@]}; do if ss -tulnp | grep -q $PORT; then echo "端口$PORT已被占用:$(ss -tulnp | grep $PORT)" else echo "端口$PORT可用" fi done # 检查依赖库 DEPENDS=("gcc" "glibc" "libaio" "nginx" "dm8-client") for DEP in ${DEPENDS[@]}; do if ! dnf list installed $DEP > /dev/null 2>&1; then echo "依赖库$DEP未安装,需执行:dnf install -y $DEP" fi done |
第三部分:企业级部署实战(Web+MES 迁移)
一、软件安装与卸载(麒麟系统三种方式)
1. dnf 安装(推荐,官方源)
# 搜索软件 dnf search nginx # 安装软件 dnf install -y nginx # 卸载软件(连同依赖) dnf remove -y nginx # 更新系统 dnf update -y # 清理缓存 dnf clean all |
2. rpm 安装(离线场景)
# 安装本地rpm包 rpm -ivh nginx-1.20.1-9.el8.x86_64.rpm # 强制安装(忽略依赖) rpm -ivh --force --nodeps nginx-1.20.1-9.el8.x86_64.rpm # 卸载rpm包 rpm -e nginx # 查看已安装rpm包 rpm -qa | grep nginx |
3. 源码编译安装(自定义配置)
以安装 Nginx 为例:
# 安装依赖 dnf install -y gcc pcre-devel zlib-devel openssl-devel # 下载源码包 wget http://nginx.org/download/nginx-1.24.0.tar.gz # 解压 tar -zxvf nginx-1.24.0.tar.gz && cd nginx-1.24.0 # 配置(指定安装路径和模块) ./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_stub_status_module # 编译安装 make && make install # 启动Nginx /opt/nginx/sbin/nginx |
二、Web 部署实战(Nginx+Tomcat)
1. 环境配置
# 安装JDK(国产化推荐OpenJDK 11) dnf install -y java-11-openjdk-devel # 配置环境变量 echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk" >> /etc/profile echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile source /etc/profile # 验证JDK java -version |
2. Tomcat 部署
# 下载Tomcat wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.85/bin/apache-tomcat-9.0.85.tar.gz # 解压至/opt tar -zxvf apache-tomcat-9.0.85.tar.gz -C /opt && mv /opt/apache-tomcat-9.0.85 /opt/tomcat # 授权给tomcat用户 chown -R tomcat:tomcat /opt/tomcat/ # 启动Tomcat su - tomcat -c "/opt/tomcat/bin/startup.sh" # 验证(默认端口8080) curl http://localhost:8080 |
3. Nginx 反向代理配置
编辑/etc/nginx/nginx.conf,添加反向代理规则:
server { listen 80; server_name mes.kylin.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 静态资源缓存 location ~* \.(jpg|jpeg|png|gif|css|js)$ { root /opt/tomcat/webapps/ROOT; expires 30d; } } |
重启 Nginx:systemctl restart nginx,防火墙开放 80 端口:firewall-cmd --permanent --add-port=80/tcp && firewall-cmd --reload
三、MES 迁移部署全流程(脚本 + 数据库迁移)
1. 环境部署脚本(自动化配置 MES 运行环境)
创建mes_env_deploy.sh:
#!/bin/bash # MES迁移部署环境配置脚本(麒麟OS V10) # 适用场景:从旧服务器迁移MES至新麒麟服务器 set -e # 脚本执行出错立即退出 # 1. 创建用户和目录 groupadd mesgroup useradd -g mesgroup -m -s /bin/bash mesuser echo "mesuser:Mes@2024" | chpasswd # 设置密码(需按实际修改) mkdir -p /opt/mes/{app,data,log,backup,conf} chown -R mesuser:mesgroup /opt/mes/ chmod -R 770 /opt/mes/ # 2. 安装依赖库 dnf install -y gcc glibc libaio-devel pcre-devel zlib-devel openssl-devel java-11-openjdk-devel nginx # 3. 配置防火墙(开放MES所需端口) firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --permanent --add-port=5236/tcp # DM数据库端口 firewall-cmd --reload # 4. 关闭SELINUX(避免权限问题) sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config setenforce 0 # 5. 配置JDK环境变量 echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk" >> /home/mesuser/.bashrc echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /home/mesuser/.bashrc source /home/mesuser/.bashrc # 6. 安装DM数据库客户端(如需连接DM数据库) rpm -ivh /opt/mes/backup/dm8_client_202405.rpm # 需提前上传客户端包 echo "export DM_HOME=/opt/dmdbms/client" >> /home/mesuser/.bashrc echo "export PATH=\$DM_HOME/bin:\$PATH" >> /home/mesuser/.bashrc source /home/mesuser/.bashrc echo "MES环境部署完成!请执行以下步骤:" echo "1. 上传MES应用包至/opt/mes/app" echo "2. 执行数据库迁移脚本" echo "3. 启动MES服务" |
执行:chmod +x mes_env_deploy.sh && ./mes_env_deploy.sh
2. 数据库迁移脚本(DM 数据库迁移至麒麟系统)
创建mes_db_migrate.sh:
#!/bin/bash # MES数据库迁移脚本(从旧DM数据库迁移至新麒麟系统DM数据库) # 配置参数(需按实际修改) OLD_DB_IP="192.168.1.100" OLD_DB_PORT="5236" OLD_DB_USER="SYSDBA" OLD_DB_PWD="SYSDBA" NEW_DB_IP="localhost" NEW_DB_PORT="5236" NEW_DB_USER="SYSDBA" NEW_DB_PWD="SYSDBA" BACKUP_DIR="/opt/mes/backup/db" DB_NAME="MESDB" # 创建备份目录 mkdir -p $BACKUP_DIR # 1. 从旧数据库导出数据 echo "开始从旧数据库导出数据..." /opt/dmdbms/client/bin/dexp $OLD_DB_USER/$OLD_DB_PWD@$OLD_DB_IP:$OLD_DB_PORT \ FILE=$BACKUP_DIR/mes_db_exp_$(date +%Y%m%d).dmp \ LOG=$BACKUP_DIR/mes_db_exp_$(date +%Y%m%d).log \ FULL=Y \ BUFFER=10240 \ FEEDBACK=1000 if [ $? -ne 0 ]; then echo "数据导出失败,请查看日志:$BACKUP_DIR/mes_db_exp_$(date +%Y%m%d).log" exit 1 fi # 2. 导入新数据库 echo "开始导入新数据库..." /opt/dmdbms/bin/imp $NEW_DB_USER/$NEW_DB_PWD@$NEW_DB_IP:$NEW_DB_PORT \ FILE=$BACKUP_DIR/mes_db_exp_$(date +%Y%m%d).dmp \ LOG=$BACKUP_DIR/mes_db_imp_$(date +%Y%m%d).log \ FULL=Y \ BUFFER=10240 \ FEEDBACK=1000 \ IGNORE=Y # 忽略已存在的表(避免导入失败) if [ $? -ne 0 ]; then echo "数据导入失败,请查看日志:$BACKUP_DIR/mes_db_imp_$(date +%Y%m%d).log" exit 1 fi # 3. 验证数据一致性(查询关键表记录数) echo "验证数据一致性..." OLD_COUNT=$(echo "SELECT COUNT(*) FROM MES_PRODUCTION_ORDER;" | /opt/dmdbms/client/bin/disql $OLD_DB_USER/$OLD_DB_PWD@$OLD_DB_IP:$OLD_DB_PORT -S | grep -v "COUNT" | awk '{print $1}') NEW_COUNT=$(echo "SELECT COUNT(*) FROM MES_PRODUCTION_ORDER;" | /opt/dmdbms/bin/disql $NEW_DB_USER/$NEW_DB_PWD@$NEW_DB_IP:$NEW_DB_PORT -S | grep -v "COUNT" | awk '{print $1}') if [ "$OLD_COUNT" -eq "$NEW_COUNT" ]; then echo "数据迁移成功!关键表记录数一致:$OLD_COUNT" else echo "数据迁移警告!关键表记录数不一致(旧库:$OLD_COUNT,新库:$NEW_COUNT)" exit 1 fi echo "数据库迁移完成!备份文件路径:$BACKUP_DIR" |
执行:chmod +x mes_db_migrate.sh && ./mes_db_migrate.sh
第四部分:常见问题与排坑技巧
1. 麒麟系统权限问题(MES 部署高频坑)
- 现象:mesuser 用户无法写入/opt/mes/data目录
- 解决:
chown -R mesuser:mesgroup /opt/mes/ chmod -R 770 /opt/mes/ # 检查SELinux状态(必须关闭) getenforce # 若返回Enforcing,执行setenforce 0 |
2. 依赖库版本冲突(如 libstdc++)
- 现象:启动 MES 时提示 “libstdc++.so.6: version `GLIBCXX_3.4.21' not found”
- 解决:
dnf install -y libstdc++-devel ln -s /usr/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6 # 按实际版本修改 |
3. 磁盘挂载失败(fstab 配置错误)
- 现象:重启后/opt/mes/data无法挂载,提示 “mount: /opt/mes/data: can't find in /etc/fstab.”
- 解决:
# 检查fstab配置(避免语法错误) cat /etc/fstab | grep /opt/mes/data # 正确配置格式:设备路径 挂载点 文件系统 选项 0 0 echo "/dev/mes_vg/mes_lv /opt/mes/data xfs defaults 0 0" >> /etc/fstab # 验证配置 mount -a |
4. MES 服务启动失败(端口占用)
- 现象:Tomcat 启动提示 “Address already in use”
- 解决:
# 查找占用端口的进程 ss -tulnp | grep 8080 # 终止进程(按实际PID修改) kill -9 12345 # 或修改Tomcat端口(/opt/tomcat/conf/server.xml) |
第五部分:进阶学习资源推荐
- 官方文档:
- 麒麟操作系统 V10 用户手册:麒麟软件官方文档中心
- 达梦数据库迁移指南:达梦技术文档中心
- 工具推荐:
- 远程管理:Xshell(支持麒麟系统)、麒麟自带远程桌面
- 监控工具:nmon(系统监控)、Zabbix(企业级监控)
- 迁移工具:DM DTS(数据库迁移)、rsync(文件同步)
- 实战场景扩展:
- 麒麟系统高可用集群配置(Kylin Cluster)
- MES 系统国产化适配(兼容飞腾 / 鲲鹏 CPU)
- 容器化部署(Docker+K8s on 麒麟 OS)
这份技术文档聚焦麒麟操作系统企业级应用,从基础操作到高阶部署形成完整知识体系,核心亮点: 1. 国产化适配:突出麒麟OS特有命令、安全配置和架构差异(x86/ARM) 2. 实操性极强:所有步骤含完整命令,脚本可直接复用(MES环境部署+数据库迁移) 3. 场景化设计:聚焦工业MES迁移等实际需求,解决企业级痛点 4. 避坑指南:针对高频问题提供具体解决方案,降低部署风险 若需补充某部分细节(如麒麟集群配置、容器化部署、特定MES系统适配),或优化脚本参数(如调整数据库备份策略、修改端口配置),欢迎随时告知,我会进一步提升文档的针对性和完整性! |
(注:文档部分内容可能由 AI 生成)