一说备份,很多人第一反应是把整个硬盘复制一份。
没必要,也太慢。真正要保住的,只有三样东西。
第一样:数据库
网站的文章、分类、评论、设置、订单,全在数据库里。
这是唯一无法从别处重建的东西。图片丢了还能重新拍,主题丢了还能重新装,数据库丢了,几年的内容就没了。
备份数据库,导出一份 SQL 文件就够。文件不大,一个几百篇文章的站,通常也就几十兆。
频率看更新速度。天天写,就天天备;一周写一篇,一周备一次也行。但要有规律,不能想起来才做。
第二样:上传的文件
用户上传的图片、附件、头像,这些不在数据库里,在存储上。
如果你用的是对象存储,它本身有多副本,风险低一些,但仍要防手滑删除。定期把整个目录同步一份到别处,是最省事的做法。
如果文件存在服务器本地盘,那必须备。服务器一坏,盘上的东西跟着没。
第三样:配置和密钥
这一样最容易被忽略,也最要命。
环境变量、API 密钥、授权文件、部署脚本,这些东西平时看不见,一旦丢了,网站能打开但功能全废,而且很难想起来当初填的是什么。
做法很简单:把所有配置项列成一张表,值单独存一份,放在密码管理器或者加密文件里。不要只存在服务器上。
备份放哪
一条硬规矩:备份不能和原文件放同一块盘。
同一块盘坏了,原文件和备份一起没。同一个机房断电,两台机器一起停。备份的意义就是另一处还有一份,放在一起等于没备。
理想是三个地方:服务器一份、对象存储一份、本地电脑一份。前两个自动跑,最后一个手动拉,一个月一次就够。
备份要验证
这是最多人漏掉的一步。
备份文件生成了,不等于能恢复。文件可能只写了一半,可能权限不对,可能压缩包损坏。不试一次,你永远不知道。
做法:隔一段时间,拿最新的备份,在一个空环境里恢复一遍,看看网站能不能正常打开、文章在不在、图片能不能显示。
一年试两次,心里就有底了。
留几份
不要只留最新一份。
如果某次误删,你过了三天才发现,只留最新一份的话,最新那份里已经是删完的状态了。
常见的做法是留七份日备份加四份周备份,滚动覆盖。占不了多少空间,但能救回发现得太晚这种情况。
一句话总结
数据库、文件、配置,三样备齐,分开放,定期试着恢复一次。
其余的,都是锦上添花。
自动化怎么做
手动备份靠不住,人总会忘。
最省事的做法是让服务器自己跑:每天固定一个时间,导出数据库、打包上传目录、传到另一处,然后删掉过期的旧包。
定时任务写好一次,之后基本不用管。唯一要做的是每个月看一眼,确认它还在跑,文件大小是不是正常。
如果某天备份文件突然从几十兆变成几 K,那就是出问题了,别等真出事才发现。
请我喝杯咖啡
赞赏作者
请我喝杯咖啡

扫码任意金额 · 感谢你的认可