Typecho博客通过amh备份文件为何比手动备份大很多?

一个typecho小博客为啥备份文件那么大?

备份设置图:只选了一个站点、一个数据库,没有其他的了。

尝试过手动备份,直接压缩网站文件(23mb)/导出数据库文件(1mb),大小远远低于amdata远程备份(345mb)

里面包含了哪些东西呀?

——
我知道了...要勾选“纯数据模式”

阅读 700
avatarAI BotBETA

AMH面板备份文件显著大于手动备份的主要原因通常有以下几点,基于AMH的备份机制和用户配置来综合分析:

🔍 核心原因分析

  1. 备份范围不同
    AMH默认备份的是完整站点目录(例如 /home/wwwroot/域名),包含隐藏文件(如 .user.ini, .htaccess)、缓存文件、日志文件(如 error_log)、临时文件(如 PHP session 文件)等。手动备份往往只包含公开的网页文件(如 /usr/themes, /usr/plugins),忽略了这些隐藏项。
  2. 包含日志文件 (关键因素)
    日志文件(尤其是 error_log)可能极大。如果网站曾出现大量错误(如插件冲突、爬虫扫描),日志文件可能积累到 几百MB。AMH备份会包含这些文件,而手动备份通常不会主动添加它们。
  3. 备份历史版本叠加
    AMH默认启用 增量备份历史(如图中保留本地7份)。备份文件可能包含多个时间点的数据快照(即使用户只看到1个远程文件),导致体积成倍增长。
  4. 数据库备份方式差异
    AMH可能备份 原始数据库文件(如 MySQL 的 /var/lib/mysql/数据库名 目录),而非仅 SQL 导出文件。原始文件包含索引、缓存等,体积远大于纯SQL导出(1MB vs 可能几十MB)。
  5. 临时文件与缓存
    目录中可能包含 Typecho 或插件生成的缓存文件(如 ./usr/uploads 中的图片缓存),这些在手动备份时可能被忽略。

🛠️ 验证与解决方案

✅ 检查备份内容

通过SSH登录服务器,检查以下目录大小:

# 进入站点目录
cd /home/wwwroot/你的域名
# 检查整体大小 (注意包含隐藏文件)
du -sh . 
# 重点检查日志和缓存
du -sh ./tmp ./logs ./usr/uploads .session 2>/dev/null
# 查看最大文件
find . -type f -size +10M -exec ls -lh {} \;

✅ 修改AMH备份设置

  1. 清理日志文件
    删除大体积日志(如 rm -f ./logs/error_log),并在Typecho或Nginx配置中限制日志级别。
  2. 关闭备份历史
    在AMH面板 → 备份管理 → 修改备份任务 → 取消勾选 「保留本地备份历史」 → 保存。
    (注意:这将仅保留最新备份)
  3. 排除非必要目录
    在备份设置中添加排除规则(如图中的"排除文件"选项):

    /logs/*
    /tmp/*
    /.session/*
    /cache/*
  4. 手动清理旧备份
    删除服务器上旧的本地备份文件(路径通常为 /home/backup)。

💡 结论

**AMH备份文件过大的主要原因是:
① 包含隐藏文件/日志/临时文件;
② 启用了多份历史备份叠加。**

解决步骤建议:

  1. 通过SSH清理站点下的 error_log 和其他大体积日志;
  2. 在AMH备份设置中关闭「保留本地备份历史」;
  3. 添加排除规则 /logs/* /tmp/*
  4. 重新执行一次AMH备份 → 体积应降至 30MB左右(接近手动备份)。
📌 建议定期检查 /home/wwwroot/你的域名/logs/ 目录,防止日志异常增长。若长期不需历史备份,关闭该功能可节省90%以上空间。
1 个回答

是,默认备份是有备份网站环境下所有软件程序文件与网站日志等文件,可以勾选『纯数据模式』,
则:仅备份网站文件与数据库数据,忽略其它软件数据、程序文件、日志文件等

推荐问题