入门
入门型主机
¥68 /年
2核2G/3M | 个人站点
立即购买
京东云服务器推荐
轻量
轻量云主机
¥158 /年
2核4G | 5M带宽
立即购买
性能
性能型主机
¥750 /年
4核16G | 8M带宽
立即购买

rsync与scp实战:如何在两台云服务器之间高效复制文件与同步目录

发布时间:2026-08-03 14:05 作者:admin

1. 概述

在日常运维和开发工作中,我们经常需要在两台云服务器之间传输文件或同步数据。无论是迁移网站代码、备份数据库,还是分发配置文件,scp 和 rsync 都是最常用、最可靠的命令行工具。

这两个命令都基于 SSH 协议进行安全传输,同时支持公共网络私有网络,只要有目标服务器的远程访问权限即可操作。本文将分别介绍它们的使用方法和适用场景。


2. scp——简单快速的安全复制

scp 全称 Secure Copy(安全复制),是一种通过 SSH 协议在主机之间复制文件的方法。它的特点是命令简单、即用即走,适合快速传输单个文件或小规模目录。

2.1 复制单个文件

假设我们要把服务器 192.168.1.1 上的文件 /root/myfile 复制到服务器 192.168.1.2 的 /tmp 目录下:

bash
scp /root/myfile root@192.168.1.2:/tmp

系统会提示输入 192.168.1.2 的 root 密码,输入后确认 yes 即可开始传输

2.2 复制整个目录

如果要复制某个目录(如 /root/mydir),需要加上 -r(recursive,递归)参数:

bash
scp -r /root/mydir root@192.168.1.2:/tmp

这条命令会将整个 /root/mydir 目录及其所有子文件复制到目标服务器的 /tmp 目录下

2.3 scp 常用参数

 
 
参数 说明
-r 递归复制整个目录
-P port 指定 SSH 端口(大写 P)
-i keyfile 使用指定的私钥文件进行认证
-v 显示详细传输过程,便于排查问题

3. rsync——强大的同步与备份工具

rsync 是一款功能更强大的文件复制和同步工具,通常用于在两台服务器之间同步数据。与 scp 相比,rsync 的核心优势在于:

  • 增量传输:只传输发生变化的部分,节省带宽和时间

  • 保留属性:可以保留文件的所有者、权限、时间戳等元数据

  • 支持排除规则:可以忽略不需要同步的文件或目录

和 scp 一样,rsync 也通过 SSH 协议来传输数据

3.1 基本用法

把服务器 192.168.1.1 上的文件夹 /root/mydir 复制到 192.168.1.2 的 /tmp 目录下:

bash
rsync -av /root/mydir root@192.168.1.2:/tmp

3.2 参数详解

 
 
参数 说明
-a 归档模式,等同于 -rlptgoD,复制时保留所有者和权限属性
-v 详细模式,在传输过程中显示进度信息
-z 传输时压缩数据,适合慢速网络
--delete 删除目标端存在但源端已不存在的文件,实现完全同步
--exclude 排除指定文件或目录,如 --exclude='*.log'

3.3 实用场景示例

场景一:同步网站代码(排除缓存目录)

bash
rsync -avz --exclude='cache/' --exclude='*.tmp' /var/www/html/ root@192.168.1.2:/var/www/html/

场景二:完全镜像同步(删除目标端多余文件)

bash
rsync -av --delete /data/backup/ root@192.168.1.2:/data/backup/

4. scp vs rsync:如何选择?

 
 
对比维度 scp rsync
适用场景 快速传输单个文件或小目录 大规模数据同步、定期备份
增量传输 ❌ 每次都全量传输 ✅ 只传变化部分
保留属性 部分保留 ✅ 完整保留(-a 参数)
排除规则 ❌ 不支持 ✅ 支持 --exclude
命令复杂度 简单 稍复杂但功能强大
网络效率 一般 高(尤其配合 -z 压缩)

建议:如果只是偶尔复制几个文件,scp 足够用;如果需要定期同步大量数据、做服务器备份或镜像部署,rsync 是更专业的选择。


5. 注意事项

  1. SSH 端口:如果目标服务器使用了非默认的 SSH 端口(非 22),scp 使用 -P 参数指定端口,rsync 则通过 -e "ssh -p port" 方式指定。

  2. 权限问题:确保有目标服务器的写入权限,通常使用 root 或具有 sudo 权限的用户。

  3. 网络稳定性:大文件传输建议使用 rsync,即使传输中断也可以断点续传(配合 --partial 参数)。

  4. 安全性:建议使用 SSH 密钥认证替代密码认证,既安全又免去重复输入密码的麻烦。


6. 总结

scp 和 rsync 是 Linux 服务器间文件传输的两大利器:

  • scp:简单直接,适合快速复制单个文件或小目录

  • rsync:功能强大,适合大规模数据同步和定期备份,支持增量传输和属性保留

掌握这两个命令,可以大幅提升服务器运维和开发部署的效率。建议根据实际场景灵活选用——小文件用 scp,大数据用 rsync