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 ./