scp、rsync远程文件同步

scp -r langchain_dev.zip root@1.2.2.5:/home/

/usr/bin/rsync -avP --partial --progress root@1.1.1.1:/home/langchain_dev.zip .

scp 命令本身‌不支持断点续传‌功能。

如果在传输大文件时网络中断或连接超时,scp 会终止传输,且已传输的部分不会被保留,下次必须从头开始重新传输整个文件。这是因为 scp 基于 SSH 协议设计,其传输机制是"原子式"的,没有记录偏移量、校验块或续传标记的能力。


✅ 推荐替代方案:使用 rsync 实现断点续传

rsync 是更强大的文件同步工具,通过 SSH 传输时可完全替代 scp,并天然支持断点续传和增量传输:

复制代码
rsync -avP --partial --progress /本地文件路径 用户@主机:/远程路径 
  • -a:归档模式,保持文件属性。
  • -v:显示详细信息。
  • -P:等价于 --partial --progress,保留已传部分并显示进度。
  • --append 或 --append-verify:适用于大文件,从文件末尾追加,确保数据一致性。

💡 ‌小技巧‌:可以为常用命令设置别名,例如:

复制代码
alias scpr="rsync -avP --rsh=ssh" 

之后即可用 scpr 命令实现"安全续传版的 scp"。


🔧 其他支持断点续传的工具

工具 说明
‌**sftp**‌ OpenSSH 自带,支持 reput(上传续传)和 reget(下载续传)命令。
‌**lftp**‌ 支持 SFTP/FTP/HTTP 等协议,使用 -c 参数即可启用断点续传。
‌**可视化工具(如 WinSCP)**‌ 提供图形界面和稳定传输,适合频繁操作。

远程主机也需要安装 rsync 命令‌,才能成功执行远程同步操作。

原因说明:

在使用 rsync 进行远程文件同步时(例如:rsync -avz user@remote:/path/to/source/ /local/destination/),rsync 会通过 SSH 协议连接到远程主机,并在远程主机上执行 rsync 命令来处理文件传输。因此,远程主机必须安装并运行 rsync 服务或至少具备 rsync 可执行文件。


如何确认远程主机是否已安装 rsync?

你可以通过以下方式检查远程主机是否安装了 rsync:

复制代码
ssh root@192.168.109.110 "rsync --version" 

如果输出类似如下信息,则表示已安装:

复制代码
rsync version 3.1.3 protocol version 31 Copyright (C) 1996-2018 by Andrew Tridgell, Wayne Davison, and others. 

如果提示 command not found,则说明远程主机未安装 rsync,需要先安装。


安装 rsync 的方法(以常见 Linux 发行版为例):

Ubuntu/Debian 系统:
复制代码
sudo apt-get update sudo apt-get install rsync 
CentOS/RHEL 系统:
复制代码
sudo yum install rsync 
Arch Linux 系统:
复制代码
sudo pacman -S rsync 

总结:

要实现远程 rsync 同步,‌本地和远程主机都必须安装 rsync ‌,否则会报错如 rsync: command not found 或连接被意外关闭等。

相关推荐
在角落发呆3 小时前
工具配置备份步骤:从手动备份到自动化方案
运维·windows·自动化
_upupup4 小时前
Linux的调试工具——gdb/cgdb
linux·服务器
百度一下吧4 小时前
Nginx 使用手册:从安装配置到实战部署
运维·nginx
JeJe同学4 小时前
Docker镜像导入、容器启动
linux·运维·docker
Jason_zhao_MR4 小时前
Linux与实时控制如何兼得
linux·嵌入式硬件·机器人·工业控制
回眸&啤酒鸭5 小时前
【回眸】自动化白盒测试落地实战指南
运维·自动化·log4j
闲云野鹤在人间5 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
一个风轻云淡6 小时前
GCC 和 GDB命令简单解读
java·linux·前端
H.莓飛6 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
资料库017 小时前
Linux 8个常见运维故障排查
java·linux·运维