宝塔一键迁移不支持断点续传,中断后需人工定位并手动补全;其线性流程无checkpoint机制,易因网络抖动、API超时(默认30秒)、大SQL文件卡住或服务重启而失败。

宝塔一键迁移本身不支持断点续传,所谓“开启断点续传功能”是误解——迁移中断后必须人工干预,不能自动从中断处继续。
为什么迁移会中断且无法自动续传
宝塔的「一键迁移」插件底层是同步拉取+解压+导入的线性流程,没有 checkpoint 机制。一旦网络抖动、SSH 超时、磁盘满或目标服务器 API 响应超时(比如 curl: (56) Recv failure: Connection reset by peer),整个任务就失败,不会记录已传输文件列表或数据库导入进度。
- 迁移过程依赖源站 API 持续响应,而宝塔 API 默认超时为 30 秒,大站点(尤其含 GB 级附件)极易触发超时
- 插件未对 SQL 导入做分块处理,单个超大
.sql文件导入卡住时,整个迁移流程挂死 - 目标服务器若在迁移中重启 Nginx/MySQL,会导致后续步骤连接拒绝,但插件不重试也不回滚
实际可行的“类断点续传”操作路径
不是等它自动续,而是快速定位断在哪、手动补哪、再跳过已成功部分重新触发。
- 查中断位置:登录目标服务器,看
/www/backup/migrate_*目录下是否有残留临时文件;再看宝塔后台「网站」列表里是否已出现部分站点(说明文件同步成功但数据库没导入) - 若网站文件已同步但数据库报
Error establishing a database connection:直接用 SSH 手动导入 SQL:mysql -u<code>db_user-pdb_passdb_name - 若只同步了部分网站:进源站宝塔 → 「一键迁移」→ 「迁出数据」→ 取消勾选已成功的站点,仅保留失败项再推一次
- 避免重复建库:目标站导入前先确认库是否存在,用
mysql -e "SHOW DATABASES LIKE 'xxx';"判断,存在就跳过建库步骤
真正能降低中断概率的关键配置
与其指望续传,不如让首次迁移更稳。这些设置比“找续传开关”管用十倍:
- 源站执行
echo 300 > /www/server/panel/data/request_timeout.pl,把 API 超时从默认 30 秒提到 300 秒(需重启面板生效) - 目标站提前调大 PHP 上传限制:宝塔 → 「软件商店」→ PHP 设置 → 把
upload_max_filesize和post_max_size都设为2048M - 关闭源站所有计划任务(尤其是备份任务),防止迁移时磁盘 IO 冲突导致超时
- 用
screen -S migrate包裹迁移操作,即使本地网络断开,后台仍在跑,避免人为误关终端
最常被忽略的是:迁移中途修改任何一方的防火墙规则、Nginx 配置或 MySQL 绑定地址,都会让正在传输的连接瞬间失效,且插件不会提示具体原因——它只会显示“连接服务器失败”。盯住两边的 /var/log/messages 和 /www/wwwlogs/panel.log,比反复点“开始迁移”有用得多。

















