最稳妥的网站备份方式是用宝塔文件管理器右键压缩wp-content等目录并下载,配合phpMyAdmin导出数据库,通过FTP定时备份,并统一命名、定期清理冗余文件。

备份网站文件:用宝塔文件管理器压缩比直接打包更稳
宝塔面板里备份网站程序,最稳妥的方式不是手动 tar 命令,而是用它自带的“文件”模块右键压缩。原因很简单:宝塔会自动排除临时文件、日志、缓存目录(比如 wp-content/cache),避免把无用数据打进去,也省得你记错路径漏掉 wp-content/themes 或 wp-content/plugins。
实操建议:
- 进入 文件 → 找到你的网站根目录(如 /www/wwwroot/example.com)→ 右键点击 wp-content 文件夹 → 选择“创建压缩”
- 压缩格式选 zip(通用格式),勾选“压缩并下载”
- 下载完立刻在面板里删掉服务器上的压缩包(否则占空间又易被误删)
- 别只压 wp-content:如果主题或插件有自定义修改,记得确认是否已提交到 Git,否则必须一起备份
备份数据库:phpMyAdmin 导出比 mysqldump 更兼容低权限环境
虽然命令行 mysqldump 看起来专业,但在宝塔环境下,尤其遇到 MySQL 8+ 或启用了严格模式的实例,mysqldump --no-tablespaces -u root -p dbname > backup.sql 很容易报 Access denied for user 或 Unknown table 'mysql.column_stats'。而 phpMyAdmin 是宝塔内置、已配置好权限的 Web 界面,导出时自动加 /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 兼容头,成功率高得多。
实操建议:
- 左侧菜单点 数据库 → 找到对应库 → 点 管理 进入 phpMyAdmin
- 顶部切到 导出 标签页 → 格式选 SQL → 导出方法选 自定义 → 勾选 添加 DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT
- 文件名别用默认,改成类似 example_com_20260313.sql,方便后续识别时间与站点
- 导出前留意右上角提示的“最大执行时间”,若数据库超 50MB,建议改用“快速”模式或分表导出
定时备份到 FTP:填错凭据后卡在“正在获取文件列表”是常见故障
宝塔的 FTP存储空间 插件一旦配置错误,不会报错,只会一直显示“正在获取文件列表”,后台日志里也看不到明确失败原因。这不是网络问题,90% 是 FTP 登录凭据或路径写错了——比如用户名带域名(user@host.com)、密码含特殊字符未 URL 编码、FTP 路径末尾多加了斜杠(/backup/ vs /backup)。
实操建议:
- 安装插件后,先用本地 FTP 客户端(如 FileZilla)连一次,确认账号密码、端口(21 或 22)、被动模式开关都通
- 在宝塔设置中,FTP地址 只填 IP 或域名,不加 ftp://;FTP路径 填相对路径,如 backup(不是 /backup)
- 测试时别等自动任务,直接在计划任务列表右侧点 执行,看日志里是否出现 upload success 或 Permission denied
- 若仍失败,卸载重装插件比反复调试更快——旧版插件存在缓存残留,重装能清空所有配置项
备份保留策略:默认“保留最新3份”可能掩盖空间不足风险
宝塔计划任务里“保留最新 N 份”的逻辑,是按文件名里的日期排序后删旧留新。但如果你手动上传过命名不规范的备份(比如 backup.zip、old.sql),这些文件不会被自动清理,长期积累会撑爆磁盘。而且“保留3份”只管数量,不管大小——一个 2GB 的全站备份 + 两个 5MB 的数据库备份,实际占用仍是 2.01GB。
实操建议:
- 所有自动备份任务,统一命名规则,例如 site_example_com_$(date +\%Y\%m\%d).zip 和 db_example_com_$(date +\%Y\%m\%d).sql
- 每月手动检查一次 /www/backup 目录,删掉非标准命名的残留文件
- 如果用 FTP 存储,务必确认远程空间也有清理机制,否则 FTP 侧备份越积越多,最后连登录都变慢
备份这事,真正麻烦的从来不是第一次操作,而是三个月后你翻记录,发现某次“执行成功”的日志里其实夹着一行 Warning: failed to upload file permission denied —— 它安静地藏在滚动日志底部,没被任何人看见。










