rsync
vs scp
rsync
和 scp
都是在本地和远程服务器之间复制文件的命令行工具,但是它们在功能和用途上有一些重要的区别。以下是一些主要的区别:
断点续传和增量复制:
rsync
支持断点续传,如果复制过程中被中断,它可以从中断点继续复制,而不是重新开始。此外,rsync
也支持增量复制,只有文件的改动部分才会被复制。这可以大大加速复制过程,特别是在处理大文件或者文件系统时。scp
则不具备这些功能,如果复制过程被中断,你必须从头开始。
速度:
- 由于增量复制的能力,
rsync
在复制大文件或者在文件系统已经相似的情况下,通常比scp
更快。
复制目录:
rsync
可以方便地复制整个目录结构。scp
则需要添加-r
参数来复制目录。
删除操作:
rsync
可以设置为镜像模式,这样在源目录中删除的文件也会在目标目录中被删除。scp
不具备这个功能。
权限和所有权:
rsync
可以保留文件的权限和所有权信息。scp
默认情况下则不会保留。
兼容性:
scp
基于 SSH,几乎所有的系统都支持,而rsync
需要在系统中安装rsync
命令才能使用。
总的来说,rsync
的功能更为强大,特别是在处理大文件和大文件系统时,但是 scp
的兼容性更好,更适合简单的文件传输任务。
同步当前目录到远程服务器
1
rsync -avrP -e "ssh -p 22" ./ root@1.15.58.123:/www/server/results/project_呼吸道病原体数据库/genome_seq
参数:
-
-a
: 表示归档模式,等同于-rlptgoD
(递归复制,复制软链接,保留权限,保留时间,保留组,保留所有者,保留设备文件和特殊文件)。 -
-v
: 表示详细模式,显示同步过程中的详细信息。 -
-r
: 表示递归复制,将目录及其子目录下的所有文件都进行复制。 -
-P
: 等同于--partial --progress
,可以显示复制过程,并且支持断点续传。 -
-e "ssh -p 22"
: 使用 SSH 作为远程 shell,并指定 SSH 使用 22 端口。
同步远程服务器到本地当前目录
1
rsync -avrP -e "ssh -p 22" root@1.15.58.123:/www/server/results/project_呼吸道病原体数据库/genome_seq ./