1.10.3 关键数据与配置清单

关键数据与配置清单#

  • 原理草图:关键数据分层与恢复优先级
文章图片
  • 系统级关键数据(示例清单与用途)
  • /etc:核心配置(fstab、sysctl.conf、ssh/sshd_config、sudoers、hosts、resolv.conf)
  • /var:运行与持久数据(/var/lib、/var/spool、/var/log)
  • /home、/root:用户脚本与凭据
  • /usr/local、/opt:自编译与第三方应用
  • 业务数据:/data、/srv、/mnt/业务挂载点

  • 清单生成与更新(示例命令,含解释)

# 生成关键目录清单(路径、类型、权限、大小、修改时间)
sudo find /etc /var/lib /home /root /usr/local /opt /data -xdev \
  -printf "%p|%y|%m|%u:%g|%s|%TY-%Tm-%Td %TH:%TM\n" \
  | tee /backup/manifest/critical_paths.tsv

# 生成关键文件哈希(完整性校验)
sudo find /etc /var/lib -type f -xdev -print0 \
  | sudo xargs -0 sha256sum \
  | tee /backup/manifest/critical_hashes.sha256

# 记录挂载点与文件系统(用于恢复时校验)
lsblk -f | tee /backup/manifest/lsblk.txt
cat /etc/fstab | tee /backup/manifest/fstab.txt
  • 关键配置示例与说明(文件路径+关键参数)
# /etc/ssh/sshd_config(确保端口与认证策略)
Port 22
PasswordAuthentication no
PermitRootLogin prohibit-password

# /etc/fstab(关键挂载点)
UUID=xxxx-xxxx /data ext4 defaults,noatime 0 2

预期效果:SSH 采用密钥登录,/data 开机自动挂载。

  • 身份与访问控制(操作与核验)
# 备份账号数据库
sudo cp -a /etc/passwd /etc/shadow /etc/group /etc/gshadow /backup/etc_auth/

# 核验 sudo 策略
sudo visudo -c

# 检查授权公钥
sudo ls -l /root/.ssh/authorized_keys
  • 网络与安全(规则与证书清单)
# firewalld 规则导出
sudo firewall-cmd --list-all > /backup/manifest/firewalld.txt

# SELinux 状态与策略
sestatus > /backup/manifest/selinux_status.txt

# 证书目录清单
sudo find /etc/ssl /etc/pki /etc/letsencrypt -type f -maxdepth 4 \
  | tee /backup/manifest/certs.list
  • 服务与中间件配置要点(示例验证命令)
# systemd 自定义单位文件
sudo ls -l /etc/systemd/system > /backup/manifest/systemd_units.txt

# nginx 配置检查(有配置文件清单与语法校验)
sudo nginx -t
sudo find /etc/nginx -type f | tee /backup/manifest/nginx_files.list

# mysql/redis 关键路径(仅列清单)
sudo ls -l /etc/my.cnf /var/lib/mysql 2>/dev/null
sudo ls -l /etc/redis 2>/dev/null
  • 日志与审计(示例与轮转核查)
# 重要日志目录
sudo ls -l /var/log | head

# 轮转配置清单
sudo ls -l /etc/logrotate.d > /backup/manifest/logrotate.list
  • 备份范围建议(含排除示例)
# tar 备份示例:包含关键目录,排除虚拟文件系统
sudo tar -zcpf /backup/full/etc_var_home_$(date +%F).tgz \
  --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run --exclude=/tmp \
  /etc /var/lib /var/spool /home /root

预期效果:生成完整备份包,排除不可备份目录。

  • 排错与恢复前置检查
# 检查清单文件是否存在与完整
ls -l /backup/manifest
sha256sum -c /backup/manifest/critical_hashes.sha256 | grep -v OK

# 若哈希校验失败:定位具体文件
grep -v OK /backup/manifest/critical_hashes.sha256
  • 练习与实操
    1) 生成你环境的“路径+用途+变更频率+保留策略+恢复优先级”表(CSV)。
    2) 对 /etc 和 /var/lib 生成哈希清单,随机修改一个配置后验证差异。
    3) 设计一个仅包含 /etc 与 /var/lib 的最小恢复包,并测试解压到临时目录。