用 rsync + SSH 密钥免密登录可实现秒级增量同步,关键在于预置公钥、使用绝对路径、添加 --delete -avz 参数及排除动态文件;需停用宝塔站点并确保跨云网络与防火墙配置正确。

怎样在宝塔面板跨多台不同云服务器极其快速地传输网站源码

用 rsync + SSH 密钥免密登录实现秒级同步

宝塔面板本身不提供跨服务器源码传输功能,直接在面板里点“上传”或“下载”只作用于本机。真要快,得绕过面板,用底层 rsync 配合预置的 SSH 密钥——实测 100MB 源码(含千级小文件)3 秒内完成增量同步。

关键不是“怎么传”,而是“怎么让每次传输都跳过认证和全量重传”:

示例命令(在源服务器执行):

rsync -avz --delete -e "ssh -p 2222" /www/wwwroot/my-site/ user@192.168.3.5:/www/wwwroot/my-site/
注意末尾斜杠——/my-site/ 表示同步目录内容,/my-site(无斜杠)会把整个目录复制进去。

避免宝塔后台进程锁住文件导致 rsync 失败

宝塔的站点监控、防篡改、计划任务等模块可能对网站目录加文件锁或频繁读写,rsync 同步时容易报错 Permission denied 或卡在某个 .log 文件上。

不是关掉宝塔服务,而是精准规避:

增强版命令:

rsync -avz --delete --exclude="runtime/" --exclude="cache/" --exclude="logs/" --exclude=".user.ini" -e "ssh -p 2222" /www/wwwroot/my-site/ user@192.168.3.5:/www/wwwroot/my-site/

不同云厂商服务器间 SSH 连通性问题怎么快速定位

阿里云/腾讯云/华为云默认安全组禁止非 22 端口入站,且部分厂商默认关闭 root 登录。同步失败时,先别调 rsync 参数,先确认基础链路通不通:

为什么不用 scp 或 tar over ssh

scp 每次都是全量拷贝,没有增量逻辑;tar | ssh 虽快但无法校验一致性、不能跳过未修改文件、出错就中断重来。而 rsync 的核心优势在于“只传差量”:

真正容易被忽略的是:宝塔面板里“文件”功能看到的修改时间,可能和 rsync 实际对比的 mtime 不一致——因为某些宝塔插件会偷偷 touch 文件。所以首次部署后,建议在目标服务器手动跑一遍 rsync --dry-run 看输出,确认“sending incremental file list”下只有预期变更项,再正式执行。

本文转载于:互联网 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。