如何通过命令行使用SFTP同步本地目录与远程服务器目录
本地目录到SSH远程服务器命令行同步方案
方案1:rsync(增量同步,效率最高)
绝大多数调试失败是路径写法或参数配置错误,使用如下标准命令即可:
rsync -avz --delete ./sync/ remote:~/folder/
参数说明:
-a:归档模式,递归同步子目录,同时保留文件权限、修改时间、软链接等属性-v:输出详细同步日志,方便排查异常-z:传输时自动压缩数据,降低带宽占用--delete:删除远程目录中本地已不存在的文件,保证两端目录完全一致,无需同步删除操作可去掉该参数
注意事项:- 本地路径
./sync/末尾必须加斜杠,代表同步目录内的所有内容到远程目标路径;不加斜杠会将整个sync目录上传到~/folder下,生成~/folder/sync目录 - 本地和远程服务器都需要安装rsync工具才可使用,Windows环境可在WSL、Git Bash、Cygwin环境中直接运行该命令
方案2:scp(全量同步,无需额外配置)
Windows 10/11原生PowerShell已自带scp命令,适合小目录临时同步使用:
scp -r ./sync/* remote:~/folder/
该方案为全量覆盖同步,不会对比文件差异,大目录同步效率低于rsync。
常见异常排查
- 先运行
ssh remote确认SSH配置可正常登录远程服务器,再执行同步命令 - 若远程服务器报错rsync不存在,登录远程后执行对应发行版安装命令即可,如Debian/Ubuntu执行
sudo apt install rsync - 若出现权限类报错,可在rsync命令后追加
--no-perms --no-owner --no-group参数跳过权限校验
内容的提问来源于stack exchange,提问作者Torben E
相关产品推荐
相关产品推荐

