需在麒麟系统中持久化配置以支持迁移、审计与灾备,应依次执行:一、导出主机信息、网络配置、启用服务、关键文件及用户组;二、打包压缩并验证;三、构建含软件清单与目录同步的自动化备份脚本;四、配置每日cron定时执行;五、实施权限控制与GPG加密存储。

如果您需要在麒麟操作系统(Kylin OS)中持久化保存当前系统配置状态,或为后续迁移、审计、灾备做准备,则需将关键配置项提取为可复用的结构化文件。以下是导出系统配置与构建环境备份脚本的具体操作路径:
一、导出核心系统配置项
该方法通过采集系统关键配置文件和运行时参数,生成一份轻量、可读、可比对的配置快照,适用于合规检查与配置基线建立。
1、创建配置导出目录:
mkdir -p /opt/kylin-config-export/$(date +%Y%m%d_%H%M)
2、导出主机基础信息:
hostnamectl > /opt/kylin-config-export/$(date +%Y%m%d_%H%M)/hostnamectl.txt
3、导出网络配置(含IP、路由、DNS):
ip addr show > /opt/kylin-config-export/$(date +%Y%m%d_%H%M)/ip_addr.txt
ip route show > /opt/kylin-config-export/$(date +%Y%m%d_%H%M)/ip_route.txt
cat /etc/resolv.conf > /opt/kylin-config-export/$(date +%Y%m%d_%H%M)/resolv.conf
4、导出已启用服务列表:
systemctl list-unit-files --state=enabled | grep service > /opt/kylin-config-export/$(date +%Y%m%d_%H%M)/enabled_services.txt
5、导出关键系统配置文件副本(不含敏感内容):
cp /etc/hosts /opt/kylin-config-export/$(date +%Y%m%d_%H%M)/hosts.bak
cp /etc/fstab /opt/kylin-config-export/$(date +%Y%m%d_%H%M)/fstab.bak
cp /etc/default/grub /opt/kylin-config-export/$(date +%Y%m%d_%H%M)/grub.bak
6、导出用户与组信息(脱敏处理):
getent passwd | grep -v '/nologin\|/false' > /opt/kylin-config-export/$(date +%Y%m%d_%H%M)/active_users.txt
getent group > /opt/kylin-config-export/$(date +%Y%m%d_%H%M)/groups.txt
二、打包并压缩配置快照
将上一步生成的所有配置文件归档为带时间戳的压缩包,便于版本管理与离线存档,同时避免单个文件误删导致信息缺失。
1、进入导出根目录:
cd /opt/kylin-config-export
2、获取最新子目录名:
LATEST_DIR=$(ls -td */ | head -n1)
3、生成归档包(格式为tar.gz,保留权限与符号链接):
tar -czf kylin-config-$(date +%Y%m%d_%H%M%S).tar.gz "$LATEST_DIR"
4、验证归档完整性:
tar -tzf kylin-config-$(date +%Y%m%d_%H%M%S).tar.gz | head -n10
5、设置只读权限防止意外修改:
chmod 444 kylin-config-$(date +%Y%m%d_%H%M%S).tar.gz
三、构建自动化环境备份脚本
该脚本整合配置导出、软件包清单采集、自定义目录同步三项能力,支持定时执行与目标路径灵活指定,适配桌面版与服务器版麒麟OS。
1、创建脚本文件:
sudo tee /usr/local/bin/kylin-env-backup.sh
#!/bin/bash
# 配置区(按需修改)
BACKUP_ROOT="/backup/env"
SOURCE_DIRS=("/etc" "/opt" "/usr/local/bin" "/var/log/journal")
EXCLUDE_LIST="--exclude=/etc/ssl/private --exclude=/etc/shadow --exclude=/etc/passwd"
# 自动创建备份目录
mkdir -p "${BACKUP_ROOT}/$(date +%Y%m)/$(date +%d)"
BACKUP_DIR="${BACKUP_ROOT}/$(date +%Y%m)/$(date +%d)"
# 导出系统配置(复用前述逻辑)
mkdir -p "${BACKUP_DIR}/config"
hostnamectl > "${BACKUP_DIR}/config/hostnamectl.txt"
ip addr show > "${BACKUP_DIR}/config/ip_addr.txt"
systemctl list-unit-files --state=enabled | grep service > "${BACKUP_DIR}/config/enabled_services.txt"
# 导出已安装软件包列表
dpkg -l | grep ^ii > "${BACKUP_DIR}/config/dpkg_list.txt"
# 同步指定目录(使用rsync保持属性)
for DIR in "${SOURCE_DIRS[@]}"; do
if [ -d "$DIR" ]; then
rsync -aHAX --delete-after $EXCLUDE_LIST "$DIR/" "${BACKUP_DIR}/sync/$(basename "$DIR")/"
fi
done
# 打包配置目录
tar -czf "${BACKUP_DIR}/config.tar.gz" -C "${BACKUP_DIR}" config/
# 清理临时解压残留(如有)
find "${BACKUP_DIR}" -name "*.tmp" -delete
EOF
2、赋予执行权限:
sudo chmod +x /usr/local/bin/kylin-env-backup.sh
3、验证脚本语法与基础执行:
sudo /usr/local/bin/kylin-env-backup.sh
4、检查输出结构是否符合预期:
ls -R /backup/env/$(date +%Y%m)/$(date +%d)
四、配置每日定时执行
通过cron机制实现无人值守的周期性环境备份,确保配置变更被及时捕获,且不干扰日常业务运行。
1、编辑root用户的crontab:
sudo crontab -e
2、添加以下行(每日凌晨3:15执行):
15 3 * * * /usr/local/bin/kylin-env-backup.sh >/dev/null 2>&1
3、确认任务已加载:
sudo crontab -l | grep kylin-env-backup
4、手动触发一次测试任务并观察日志:
sudo /usr/local/bin/kylin-env-backup.sh
5、检查备份目录时间戳与内容完整性:
ls -lt /backup/env/$(date +%Y%m)/ | head -n3
五、安全存储与访问控制
备份数据本身具有高敏感性,必须限制访问权限并启用加密保护,防止未授权读取或篡改,尤其当备份介质外带或跨网络传输时。
1、设置备份根目录属主与权限:
sudo chown -R root:root /backup/env
sudo chmod 700 /backup/env
2、对当日压缩包强制启用GPG加密(需提前配置GPG密钥):
gpg --encrypt --recipient admin@kylin.local --output "${BACKUP_DIR}/config.tar.gz.gpg" "${BACKUP_DIR}/config.tar.gz"
3、删除明文压缩包:
rm -f "${BACKUP_DIR}/config.tar.gz"
4、验证加密文件可解密:
gpg --decrypt "${BACKUP_DIR}/config.tar.gz.gpg" | head -c 100 &>/dev/null && echo "加密验证通过" || echo "验证失败"
5、配置自动清理策略(仅保留最近7天备份):
find /backup/env -type d -mtime +7 -name "$(date -d '7 days ago' +%Y%m)/$(date -d '7 days ago' +%d)" -exec rm -rf {} \;








