使用rsync替代scp进行文件同步

Posted by Cooper on June 21, 2023

rsync vs scp

rsyncscp 都是在本地和远程服务器之间复制文件的命令行工具,但是它们在功能和用途上有一些重要的区别。以下是一些主要的区别:

断点续传和增量复制

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