/etc目录必须单独、重点、分层备份,需聚焦passwd、shadow、hosts、fstab、sudoers、sshd_config等核心文件,结合etckeeper追踪变更、rsync每日增量快照保留权限与ACL、tar每周全量归档加SHA256校验并异地保存,且每月在测试机验证恢复。

/etc 目录必须单独、重点、分层备份,不能只靠一次 tar 就算完事。它存着用户权限、网络设置、服务启动逻辑和安全策略,删错一个文件就可能让 SSH 登不上、服务起不来,甚至系统无法启动。
聚焦真正关键的子目录和文件
不是所有 /etc 下的内容都值得天天备份。优先保护直接影响系统行为的配置:
- 用户与认证:/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow(需 root 权限读取)
- 网络与挂载:/etc/hosts、/etc/resolv.conf、/etc/fstab、/etc/sysconfig/network-scripts/(或 /etc/netplan/)
- 安全与访问控制:/etc/sudoers、/etc/ssh/sshd_config、/etc/pam.d/ 下关键策略
- 日志与启动:/etc/rsyslog.conf、/etc/systemd/ 相关 unit 文件、/etc/default/ 中的服务参数
用 etckeeper 做变更追踪
它把 /etc 当成代码库管理,每次修改自动提交到本地 Git,记录谁、何时、改了什么。这不是备份本身,但能秒级回退单个文件或整个目录状态:
- 初始化:
cd /etc && git init && git add . && git commit -m "initial" - 忽略动态文件:
echo "/etc/mtab\n/etc/timezone\n/etc/hostname" >> .gitignore - 日常更新:
git add --all && git commit -m "update nginx timeout"
rsync 每日增量快照 + 权限保留
比 tar 更适合日常快照:硬链接复用未变内容,节省空间,每个目录可直接进入查看和恢复:
- 命令示例:
rsync -aHAX --delete --exclude='cache/*' --exclude='log/*' /etc/ /backup/etc_$(date +%Y%m%d)/ -
-aHAX确保权限、硬链接、ACL 和扩展属性不丢;否则恢复后 sudo 可能失效、SSH 拒绝密钥 - 保留最近 30 天快照,用
find /backup -name "etc_*" -mtime +30 -delete自动清理
每周 tar 全量归档 + 校验 + 异地保存
全量包用于长期存档和灾难恢复,必须带校验、打时间戳、离线存放:
- 打包并校验:
tar -czf /backup/etc_full_$(date +\%Y\%m\%d).tar.gz -C / etc && sha256sum /backup/etc_full_$(date +\%Y\%m\%d).tar.gz > /backup/etc_full_$(date +\%Y\%m\%d).sha256 - 推送到另一台机器:
rsync -az --delete /backup/etc_full_*.tar.gz user@backup-server:/data/conf-backup/ - 每月至少在测试机上解压一次,运行
mount -a、visudo -c、systemctl daemon-reload验证关键功能

















