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

Linux 服务器备份的排除清单:/proc /sys /dev /run /tmp 等伪文件系统必排,缓存与挂载点按需排除;rsync/tar 排除示例、必须备份的目录清单与 FAQ。

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

必须排除的:/proc/sys/dev/run/tmp/mnt/media/lost+found——前四个是内核伪文件系统(不是真实数据),/tmp 是易失临时文件,/mnt 和 /media 是挂载点(会把挂上去的盘整个卷进备份)。

排除清单与原因

排除 原因
/proc /sys 内核运行态的虚拟视图,备份它们既无意义又可能让备份工具卡死
/dev 设备节点,系统启动时自动重建
/run 运行时数据(PID 文件、socket),重启即重建
/tmp 临时文件,语义上就是可丢弃的
/mnt /media 挂载点——不排的话 NFS/外接盘会被整个拷进备份
/lost+found fsck 的碎片收容所,无备份价值
交换文件/分区 内存镜像,无恢复价值

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

rsync / tar 实操

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

# tar 等价写法
tar --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run \
    --exclude=/tmp --exclude=/mnt --exclude=/media \
    -cvpzf backup.tar.gz /

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

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

观测云对照

备份作业是典型的"平时没声音、出事救不了"的系统。备份脚本输出落日志、DataKit 采集到观测云,用心跳式监控——预期时间窗口内没有"备份成功"日志就告警;同时监控备份目标盘的剩余空间,"备份悄悄失败三个月"这种经典悲剧才能杜绝。

常见问题(FAQ)

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

Q:Docker 服务器要备什么?
A:镜像不用备(仓库里有);卷(volumes)必须备;compose 文件和 .env 在版本库里就不用单独备。/var/lib/docker 整体排除是常见做法。

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

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

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

立即开始

选择观测云版本

代码托管平台