不能,宝塔「一键迁移」依赖官方中转服务器,受限于带宽上限(≤10MB/s)、打包体积限制(默认2GB,难稳超10GB)及无断点续传,50GB数据易卡在78%或报连接重置。

宝塔面板自带的一键迁移能跨服务器传大文件吗
不能直接用于生产环境的大容量数据传输。宝塔的「一键迁移」本质是打包 + 上传到宝塔官方中转服务器(data.bt.cn),再由目标服务器下载,全程受制于:① 中转带宽上限(通常≤10MB/s);② 单次打包限制(默认 2GB,改配置也难稳过 10GB);③ 无断点续传,网络抖动就失败重来。
实际测试中,50GB 网站目录走一键迁移,大概率卡在 78% 或报 upload failed: connection reset。它适合小站点(
Rsync 命令直连同步比宝塔迁移快多少
本地实测:千兆内网下,rsync 直传 100GB 数据耗时约 6 分钟(含压缩与校验),而宝塔一键迁移同环境要 40+ 分钟且失败率高。关键差异在传输模型——rsync 是端到端、增量、可断点、支持压缩和限速。
推荐用法(源服务器执行):
rsync -avz --delete --progress -e "ssh -p 2222" /www/wwwroot/example.com/ user@192.168.1.100:/www/wwwroot/example.com/
注意点:
-
--delete表示目标端严格对齐源端,删掉多出的文件(慎用,首次同步建议先去掉) -
-e "ssh -p 2222"指定非默认 SSH 端口(宝塔默认改过端口,必须显式写) - 末尾斜杠
/很关键:source/同步内容,source同步整个目录名 - 首次同步建议加
--dry-run预演,避免误删
怎样让 rsync 在宝塔服务器上免密登录目标机
宝塔默认禁用 root 登录,且 SSH 配置常被面板修改覆盖。直接配 ssh-copy-id 容易失效。
稳妥做法(在源服务器操作):
- 用宝塔创建的普通用户(如
www)生成密钥:ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_bt_sync - 手动把公钥内容(
cat ~/.ssh/id_rsa_bt_sync.pub)追加到目标服务器对应用户的~/.ssh/authorized_keys中 - 确认目标服务器
/etc/ssh/sshd_config允许该用户密钥登录:AllowUsers www且PubkeyAuthentication yes - 重启 ssh:
systemctl restart sshd(宝塔不接管此项)
验证:ssh -i ~/.ssh/id_rsa_bt_sync -p 2222 www@192.168.1.100 能直接登录即成功。
同步过程中磁盘爆满或中断了怎么办
rsync 本身不占额外空间,但若目标端空间不足,会报 No space left on device 并停止。更隐蔽的问题是:宝塔日志、PHP 临时文件、MySQL binlog 可能在同步时持续写入,悄悄吃掉空间。
操作前必做:
- 用
df -h /www看目标磁盘剩余,留至少 20% 缓冲 - 临时停掉可能写盘的服务:
systemctl stop php-fpm mysqld(尤其 MySQL 主从同步时 binlog 增长快) - 中断后不要删一半的文件重来,直接再次运行原 rsync 命令——它自动跳过已传完的文件,只续传未完成部分
- 若需限速保业务稳定,加
--bwlimit=5000(单位 KB/s,即 5MB/s)
真正麻烦的是数据库同步。rsync 同步 MySQL 数据文件(/www/server/data)有风险,必须确保 mysqld 已完全停止,否则文件不一致。大库优先用 mysqldump 或 mydumper 导出导入。










