一、备份前必须注意
-
- MySQL、MongoDB、Redis 等不能直接拷数据文件,要先导出(mysqldump/pg_dump)。
- 否则备份出来的数据库大概率损坏、无法恢复。
-
不要备份正在写入的文件
- 网站日志、缓存、session 目录可以排除,避免备份不完整。
- 大文件上传、视频存储目录,建议先暂停写入再备份。
-
先压缩再下载
- 服务器上先用
tar.gz/zip打包,再传到本地。 - 优点:减少文件数量、防损坏、传输更快、节省空间。
- 服务器上先用
-
明确备份范围
至少备份三类:
- 网站程序 / 配置文件
- 数据库
- 用户上传文件(图片、附件)
不要只备份代码,不备份数据库。
二、备份过程中注意
-
使用加密传输
- 优先用 SFTP/SSH/scp/rsync,不要用 FTP 明文传输。
- 密码、数据都可能被抓包。
-
不要覆盖旧备份
- 文件名必须带日期:
backup_20260327.tar.gz - 保留最近 3~7 天备份,防止 “备份坏了、旧的也没了”。
- 文件名必须带日期:
-
大文件要断点续传
- 用 FileZilla、Xftp、rsync 支持断点续传。
- 网络一断就重传非常容易损坏备份。
-
注意磁盘空间
- 服务器和本地都要留足够空间,否则备份到一半失败。
- 数据库导出前先看大小:
du -sh
三、备份完成后必须做
-
一定要验证备份是否可用
- 解压看文件是否完整
- 数据库导入本地测试一下
- 不验证 = 白备份,很多人出事才发现备份是坏的
-
备份文件不能只存在一个地方
- 本地电脑 + 移动硬盘 / U 盘 / 云盘
- 电脑坏了、硬盘挂了,备份就没了
-
记录备份信息
- 备份时间、版本、服务器 IP、数据库账号
- 恢复时不用到处找资料
四、安全与权限注意
-
备份文件权限要严格
- 不要把备份放在网站可访问目录,否则可能被下载。
- 本地备份也要加密,避免泄露源码、配置、用户数据。
-
不要把密码写进备份脚本
- 用密钥登录(SSH key),不要明文密码写在脚本里。
-
敏感数据单独处理
- 证书、私钥、支付配置、API 密钥
- 建议单独加密备份,不要和普通文件混在一起
五、自动备份特别注意
-
定时备份要测试是否真的在跑
- cron 任务、计划任务经常因为路径、权限问题静默失败
- 每周至少手动检查一次
-
增量备份 vs 全量备份
- 小站:每天全量即可
- 大站:每周全量 + 每日增量,节省时间和空间
六、恢复时的注意
- 恢复前先停服务
- 避免新旧数据混写导致错乱
- 先在测试环境恢复
- 不要直接覆盖生产环境
- 恢复后检查功能
- 网站能否打开、后台能否登录、图片是否正常、数据库是否完整
七、最简单的安全备份原则
- 至少 3 份数据
- 存在 2 种不同介质
- 至少 1 份离线 / 异地

