结论:备份要分数据库和附件两块,本地+异地双份,并且定期做恢复演练,不然备份等于没有。

① 数据库优先用 mysqldump 导出,加 --single-transaction 避免锁表,写个 shell 脚本每天凌晨跑一次,文件名带日期,保留最近 14 天,超期自动删除。

② 附件和模板目录用 rsync 增量同步到另一台机器或对象存储,GJ 论坛的 uploads、data 这类目录体积大,全量打包既慢又占空间,增量才是正解。

③ 备份文件不要和网站放同一台服务器,硬盘挂了就一起没了,建议推一份到异地或云存储,用 rclone 挂载最省事。

④ 每季度手动恢复一次到测试环境,验证备份包能正常导入、附件能访问,很多人的备份其实早就损坏了,只是没试过。