主要功能
- 安全加密传输:scp 基于 SSH 协议,传输过程全程加密,输入为本地文件路径与远程主机地址,输出为远程目标路径下的文件副本,不支持断点续传
- 增量同步机制:rsync 通过对比源与目标文件的差异块,仅传输变化部分,输入为本地目录与远程目录路径,输出为同步后的完整目录,大文件场景下传输量可减少 60% 以上
- 递归目录复制:scp 加 -r 参数后支持整个目录递归拷贝,输入为本地目录路径,输出为远程目录结构,不保留软链接等特殊文件属性
- 断点续传能力:rsync 在中途中断后重新执行,能自动跳过已传输部分,输入为中断前的源与目标路径,输出为续传完成的文件,适合大文件或网络不稳定环境
- 压缩传输加速:scp 使用 -C 参数启用压缩,rsync 使用 -z 参数,输入为原始文件数据,输出为压缩后传输再解压的文件,小文件场景压缩率在 20%-40%
- 保留文件属性:rsync 默认保留时间戳、权限、属主等元数据,输入为源文件属性集,输出为与源一致的目标文件属性,-a 参数可归档模式完整保留
如何使用
scp 操作
- 本地文件推送到远程:
scp /home/user/file.txt root@192.168.16.111:/home/user/,输入为本地文件,输出为远程路径下的同名文件 - 远程文件拉取到本地:
scp root@192.168.16.111:/home/root/file.txt /home/user/,输入为远程文件路径,输出为本地文件 - 目录整体拷贝:
scp -r /home/user/docs root@192.168.16.111:/home/root/,输入为本地目录,输出为远程目录结构,注意路径末尾不带斜杠
rsync 操作
- 本地推送至远程:
rsync -avz /home/user/docs/ root@192.168.16.111:/home/root/docs/,输入为本地目录内容,输出为远程目录同步结果,-a 归档模式保留属性 - 远程拉取至本地:
rsync -avz root@192.168.16.111:/home/root/docs/ /home/user/docs/,输入为远程目录,输出为本地目录,-z 启用压缩传输 - 这里有个细节:rsync 路径末尾加斜杠表示同步目录内容,不加斜杠表示同步目录本身
核心优势
- 增量传输节省带宽:rsync 只传输文件差异部分,不是整个文件重传。数据量偏大时优势明显,比如 10GB 日志文件仅修改几行,rsync 只传输修改的块,scp 则需全量重传
- 加密传输安全可靠:scp 和 rsync(通过 SSH 通道)都使用 SSH 加密,数据在传输过程中不会被窃听或篡改。不需要额外配置,SSH 服务开启即可用
同类竞品对比
| 对比维度 | scp | rsync | ftp |
|---|---|---|---|
| 传输方式 | 全量拷贝 | 增量同步 | 全量拷贝 |
| 加密机制 | SSH 加密 | SSH 通道加密 | 明文传输 |
| 断点续传 | 不支持 | 支持 | 部分支持 |
| 保留文件属性 | 有限保留 | 完整保留(-a 参数) | 不保留 |
| 压缩传输 | -C 参数 | -z 参数 | 无原生压缩 |
| 传输效率 | 小文件快 | 大文件/重复同步快 | 中等 |
应用场景
- 日常文件备份:用 rsync 的增量特性,每天定时同步增量数据,第一次全量后后续只传变化部分,节省带宽和时间
- 临时文件传输:简单传单个文件用 scp,命令短、参数少,不需要考虑续传问题
- 大文件跨网络传输:网络不稳定时用 rsync,中断后重跑自动续传,不用重新开始
- 目录结构迁移:rsync -a 保留权限和时间戳,迁移后文件属性与源一致,适合服务器迁移场景
适用人群
- Linux 系统管理员:日常服务器文件分发、日志收集、配置同步
- 开发运维人员:代码部署、配置文件同步、环境迁移
- 需要远程文件传输的普通用户:简单传文件用 scp,需要高效同步用 rsync








这一切,似未曾拥有