为什么配置文件备份比数据还重要
很多人觉得只要数据不丢就万事大吉,但实际工作中,一个关键的配置文件被改错,比如 /etc/ssh/sshd_config 或 /etc/network/interfaces,可能导致你再也连不上服务器。这种事在深夜运维时尤其致命——重启网络服务后发现IP没生效,SSH直接断连,只能靠机房人员现场接显示器。
我见过最惨的一次是同事修改了 /etc/fstab 挂载点写错,系统重启直接进不去,而他前一天没做任何备份。整整两小时排查才恢复,期间业务中断。
哪些配置文件必须定期备份
不是所有配置都需要备份,挑关键的来:
/etc/passwd、/etc/shadow、/etc/group—— 用户权限核心/etc/ssh/sshd_config—— 远程登录命脉/etc/fstab—— 系统挂载全靠它/etc/nginx/nginx.conf或/etc/apache2/apache2.conf—— Web服务配置/etc/resolv.conf—— DNS解析出问题网站全打不开/etc/crontab及/var/spool/cron/下的任务 —— 定时任务别丢了
用 tar 打包是最简单的方法
每天凌晨自动打包一次,保留最近7天:
tar -czf /backup/config-$(date +\%Y\%m\%d).tar.gz /etc/passwd /etc/shadow /etc/group /etc/ssh/sshd_config /etc/fstab /etc/resolv.conf /etc/crontab加个 cron 任务:
0 2 * * * /usr/bin/tar -czf /backup/config-$(date +\%Y\%m\%d).tar.gz /etc/passwd /etc/shadow /etc/group /etc/ssh/sshd_config /etc/fstab /etc/resolv.conf /etc/crontab >/dev/null 2>&1配合 rsync 同步到另一台机器更安全
本地备份万一硬盘坏了也白搭。用 rsync 推送到内网另一台主机:
rsync -avz /backup/config-*.tar.gz user@192.168.1.100:/backup/linux_configs/这样即使主服务器宕机,也能从备份机拉回配置快速重建。
别忘了测试恢复流程
备份了但从没试过恢复?等于没备。找个测试机,故意删掉 /etc/ssh/sshd_config,然后解压恢复:
tar -xzf config-20240405.tar.gz -C /重启 ssh 服务看看能不能连进去。这一步能省掉未来90%的慌乱。
小技巧:用 git 管理配置变更
如果你习惯用 Git,可以把 /etc 下的部分文件纳入版本控制:
cd /etc && git init
git add ssh/sshd_config fstab network/interfaces
git commit -m "初始配置备份"每次修改前 commit 一次,出问题直接 git checkout 回退。连 diff 都能看,比对改动一目了然。
当然,敏感文件如 shadow 别提交到远程仓库,本地 git 就够用了。