备份网站和数据库必须分设两个计划任务,因宝塔不支持合并备份;需分别配置网站备份与数据库备份任务,时间错开3–5分钟,并确保云存储插件正确安装认证及系统时区设为Asia/Shanghai。

备份网站和数据库必须分两个任务配,不能合并在一个计划里
宝塔不会自动把网站文件和数据库打包成一个备份包——哪怕你选了同一时间、同一存储位置,它也只会生成两个独立文件:/www/backup/site/xxx.tar.gz 和 /www/backup/database/xxx.sql.gz。这不是 bug,是设计逻辑:文件系统层和数据库层备份机制完全不同,强行合并会破坏原子性与可恢复性。
- 在「计划任务」里添加第一个任务,类型选
备份网站,勾选目标站点,备份到选已配置好的云存储(如腾讯云COS) - 再添加第二个任务,类型选
备份数据库,勾选对应库名,备份到同样位置 - 两个任务的执行时间建议错开 3–5 分钟(比如网站 02:00,数据库 02:03),避免 IO 冲突导致超时或上传中断
远程存储插件不装好,备份到云上就是“假配置”
你在「备份到」下拉菜单里看到的腾讯云COS、阿里云OSS、七牛云这些选项,不是面板自带的,而是依赖后台已安装且认证通过的插件。没装插件,或者插件填错参数,任务照样能“添加成功”,但执行日志里只会显示upload failed或干脆静默失败。
- 进「软件商店」搜
腾讯云COS,装完必须点「设置」填全四样:SecretId、SecretKey、region(如ap-beijing)、Bucket(不含.cos.ap-beijing.myqcloud.com后缀) - 填完点「保存」,页面应自动跳转到 COS 文件列表;若空白或报错,说明密钥无效、地域不匹配,或子用户没绑
QcloudAccessForCOSBatchRole策略 - FTP 类插件更易卡在「正在获取文件列表」——90% 是路径末尾多写了
/,或用户名含@没做转义
用 Shell 脚本补上传,才能真正控制备份节奏和容错
官方「备份网站」任务只负责打包,上传动作由插件在后台异步触发,不可见、不可控、失败不重试。一旦 COS 网络抖动或限流,备份文件就只留在本地,而你根本不知道。
- 新增一个
Shell脚本类型计划任务,内容类似:/www/server/panel/plugin/cos/cos.pl upload /www/backup/site/example.com_$(date +\%Y\%m\%d).tar.gz /backup/site/
- 执行周期设为比网站备份晚 5 分钟(如网站 02:00,此脚本 02:05),确保压缩包已生成
- 脚本里加简单判断更稳妥:
if [ -f "/www/backup/site/example.com_$(date +\%Y\%m\%d).tar.gz" ]; then ... fi,避免传空文件
时区不对,定时任务就永远“慢八小时”
很多海外 VPS 默认系统时区是UTC,而宝塔面板界面显示的「每天 03:00」是按系统时区解析的。你设的是北京时间凌晨三点,结果它真按 UTC 03:00 执行——换算过来是北京时间 11:00,正好撞上流量高峰。
- 先确认系统时区:
timedatectl status | grep "Time zone",如果不是Asia/Shanghai,得改:timedatectl set-timezone Asia/Shanghai - 改完重启宝塔:
bt restart,否则面板仍读旧时区缓存 - 别去动
/www/server/panel/data/crontab.py——里面逻辑虽清楚,但它是宝塔核心调度文件,手动改容易引发计划任务全局失效

















