Linux 服务器备份时,哪些目录应该排除?

Linux 服务器备份通常排除 /proc /sys /dev /run 等运行态目录;/tmp、挂载目录与 lost+found 按恢复需求判断,并明确排除备份目标;rsync/tar 排除示例、必须备份的目录清单与 FAQ。

最佳实践
Linux 服务器备份时,哪些目录应该排除?封面

通常排除运行态目录 /proc、/sys、/dev、/run;/tmp、/mnt、/media、lost+found 是否排除要按恢复目标判断,不能无条件认定其中没有需要恢复的数据。

排除清单与原因

排除 原因
/proc /sys 内核运行态的虚拟视图,备份它们既无意义又可能让备份工具卡死
/dev 设备节点,系统启动时自动重建
/run 运行时数据(PID 文件、socket),重启即重建
/tmp 通常是临时数据,但需确认应用没有错误地存放必要数据,且不保证总在内存中
/mnt /media 只是常用挂载目录,其他位置也可能挂载;应先列出全部文件系统并安排分别备份
/lost+found 可能含恢复出的孤立文件,应先检查内容再决定
交换文件/分区 内存镜像,无恢复价值

按需排除(看你的恢复策略):/var/cache、/var/tmp、容器镜像层(/var/lib/docker 很大且可重建,但卷数据不能排)、日志归档、大对象存储挂载。

rsync / tar 实操

# rsync 整盘备份的典型排除
rsync -aAXH \
  --one-file-system \
  --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/backup/*} \
  / /backup/server-root/

# tar 等价写法
tar --one-file-system --exclude=./proc --exclude=./sys --exclude=./dev --exclude=./run \
    --exclude=./tmp --exclude=./mnt --exclude=./media --exclude=./backup \
    --acls --xattrs -cvpzf /backup/server-root.tar.gz -C / .

示例明确排除备份目标,避免把新归档再次纳入自身;--one-file-system 会跳过其他挂载,必须为 /home、/var、/boot 等独立文件系统另设备份。备份文件含密钥和凭据,需限制权限并按策略加密。

必须备份的清单(对照检查)

  • /etc:全部配置——恢复一台机器的身份就靠它。
  • /home、/root:用户数据。
  • /var/www、/srv:站点与应用数据。
  • /var/lib 里的有状态服务数据:数据库(建议用数据库自己的备份工具导出后再备,直接拷数据文件有损坏风险)。
  • crontab:/var/spool/cron/ 与 /etc/crontab、/etc/cron.d/。
  • SSL 证书与密钥:/etc/letsencrypt、/etc/ssl。
  • 应用自定义安装目录(/opt 等)。

目录清单确认后,还要验证备份作业确实结束且副本能恢复。若已用观测云采集作业日志,可按任务名筛选成功与失败记录,并依照日志检测配置设置预期完成窗口。缺少完成日志时先检查任务和采集链路;恢复演练仍须从备份副本实际执行。

常见问题(FAQ)

Q:数据库目录(/var/lib/mysql)直接备份行不行?
A:风险大。运行中的数据库文件处于不一致状态,拷出来的可能是坏库。正确做法:mysqldump/物理备份工具(XtraBackup)先导出,备份导出产物;或至少停库再拷。

Q:Docker 服务器要备什么?
A:确认镜像能从可信仓库或构建材料恢复;持久卷、绑定目录、Compose 配置和运行所需密钥都应纳入恢复方案。不要假定 .env 已安全入库;排除 /var/lib/docker 前必须单独保护其中的卷与不可重建数据。

Q:怎么验证备份真的能恢复?
A:定期做一次恢复演练——把备份还原到一台干净的机器/容器里验证服务能起。没演练过的备份约等于没有备份。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台