备份任务必须分“网站”和“数据库”两个独立计划,不可合并;需分别配置、安装对应插件、指定远程存储并校准时区;高频备份易致IO压力,禁改crontab.py,应通过面板或Shell脚本管理。

备份任务必须分“网站”和“数据库”两个独立计划
宝塔不会自动把网站文件和数据库打包成一个备份包,哪怕你选了同一时间、同一存储位置,也得手动添加两个任务:一个选备份网站,另一个选备份数据库。这是硬性限制,不是疏漏。
常见错误现象是只建了一个任务,结果发现FTP里只有网站压缩包、没数据库SQL文件,或者反过来——日志里看着执行成功,但实际缺了一半数据。
- 任务类型必须分别选择
备份网站和备份数据库,不能混用 - 执行周期可以相同(比如都设为每天 02:00),但必须是两条独立记录
- 如果用了远程存储(如OneDrive、腾讯云COS),两个任务都要单独指定“备份到”目标,不能复用
- 保留份数建议设为
3或7,避免磁盘被撑爆;本地备份尤其要注意这点
远程备份前必须先装对应插件并完成授权
“备份到FTP/OneDrive/COS/七牛云”这些选项不会凭空出现,它们依赖后台已安装且配置成功的插件。没装插件时,下拉菜单里只会显示本地磁盘,其他全是灰色不可选。
容易踩的坑是跳过插件安装直接去“计划任务”填参数,结果点保存就报错,或者任务一直卡在“正在获取文件列表”。这不是网络问题,是插件根本没激活。
-
FTP存储空间插件需在【软件商店 → 系统工具】里安装,设置时IP/用户名/密码任一填错都会失败 -
OneDrive插件要求复制完整跳转URL(含code=那段),中途断开或粘贴不全会导致授权失败 -
腾讯云COS插件必须用子用户密钥(SecretId/SecretKey),主账号密钥有安全风险且可能被拒绝
执行周期别只看“每天”,要留意服务器时区和夏令时
宝塔所有定时任务基于服务器本地系统时间触发。如果你的服务器时区设为Asia/Shanghai(东八区),但面板界面没显式标出,容易误以为“每天03:00”就是北京时间凌晨三点——其实它就是,但前提是系统时间本身准确。
真正出问题的是那些用海外VPS自建宝塔的用户:系统默认UTC,而面板没做时区转换,结果你设的“每天03:00”其实是UTC时间,换算成北京时间就是11:00,白天高峰期开始备份,拖慢网站响应。
- 执行前先确认服务器时间:
date命令输出是否符合预期 - 修改时区(如需):
timedatectl set-timezone Asia/Shanghai - 避免用“每小时”或“每5分钟”这种高频策略备份数据库,IO压力大,小内存机器可能卡死
crontab.py里的逻辑说明白了但改不得
宝塔底层调用/www/server/panel/class/crontab.py处理任务调度,里面确实有def AddCrontab(self,get)这类函数校验任务名长度、参数完整性。但这不是给你手改的入口。
有人想绕过面板直接写crontab命令,或者修改这个py文件加自定义逻辑,结果升级宝塔后被覆盖,或者触发校验失败导致整个计划任务模块异常。这不是扩展点,是内部实现细节。
- 所有配置必须走面板UI或API(
bt crontab命令行工具),不要碰crontab.py - 需要更灵活控制?写好shell脚本,任务类型选
Shell脚本,把备份逻辑封装进去,再由宝塔调用 - 日志路径固定在
/www/wwwlogs/cron_*.log,出问题第一时间查这里,比猜代码快得多
success,比什么都实在。










