温馨提示×

CentOS Context如何备份数据

小樊
52
2026-07-20 19:00:34
栏目: 智能运维

CentOS(以及大多数 Linux 系统)中,“Context”通常指 SELinux 上下文(Security Context)系统上下文环境。下面我按**最常见的几种“Context 备份场景”**分别说明,你可以对号入座。


一、备份 SELinux Context(最常见)

1️⃣ 查看当前 SELinux Context

ls -Z
ps -Z

2️⃣ 备份文件/目录的 SELinux Context

使用 semanagerestorecon 配套方式:

✅ 方法一:生成默认上下文规则(推荐)

semanage fcontext -l > selinux_fcontext_backup.txt

✅ 方法二:备份指定目录的 Context

getfattr -d -m ".*" /path/to/dir -R > selinux_backup.attr

恢复:

setfattr --restore=selinux_backup.attr

3️⃣ 备份并恢复整个系统的 SELinux 策略

semanage export > selinux_policy_backup.txt

恢复:

semanage import < selinux_policy_backup.txt

二、备份系统环境 Context(环境变量 / 配置)

1️⃣ 备份环境变量

env > env_backup.txt

或只备份用户环境:

cat ~/.bashrc ~/.bash_profile > user_env_backup.txt

2️⃣ 备份系统级环境

cp -a /etc/profile /etc/profile.d /backup/

三、备份系统上下文(系统状态 / 服务配置)

1️⃣ 备份系统服务状态

systemctl list-units --type=service --state=running > services_running.txt

2️⃣ 备份关键系统配置

tar czvf centos_config_backup.tar.gz \
/etc \
/root \
/home \
/var/spool/cron

四、备份数据 + Context(推荐做法)

✅ 使用 tar 保留 SELinux Context(非常重要)

tar czvf backup.tar.gz --selinux /data

恢复:

tar xzvf backup.tar.gz --selinux -C /

⚠️ 注意:

  • 目标系统必须启用 SELinux
  • 文件系统需支持 xattr

五、常见错误 & 注意事项

问题 说明
恢复后 Context 丢失 未使用 --selinux
SELinux 拒绝访问 未恢复正确 Context
系统无法启动 误改 /etc/selinux/config

六、快速备份建议(总结)

只关心 SELinux

semanage export > selinux_backup.txt

数据 + Context 一起备份

tar czvf data_backup.tar.gz --selinux /data

系统级 Context

semanage fcontext -l > fcontext_backup.txt

如果你指的是 Docker / Kubernetes / 特定软件(如 PostgreSQL、Nginx)的 Context,可以告诉我具体场景,我可以给你更精确的备份方案

0