GeekHub

rsync:Linux下scp的更优替代品

scp是Linux 下最常用的远程传输文件的命令,但是这个命令有个缺陷,在网络中断或网络卡顿时,scp一旦中断只能重新传输文件,这里介绍一个支持断点续传功能的远程传输命令rsync。

用法如下:

rsync -P --rsh=ssh username@address:source_file_path target_file_path

如:将IP地址为111.222.333.444,用户名为abc的服务器上的/home/abc/some_stuff文件拷贝到本地的主目录下,可以使用:

rsync -P --rsh=ssh admin@111.222.333.444:/home/abc/some_stuff ~/some_stuff

这里-P选项表示 “–partial –progress”,代表支持部分传送及进度显示,当我们拷贝some_stuff文件时,目标目录下会出现一个.some_stuff(隐藏文件),若进程意外退出,目标目录下的.some_stuff会被更名为some_stuff;当我们重新执行上述命令时,当我们重新执行上述命令时,此前未传送完的some_stuff会被重命名为.some_stuff直至文件传输完毕。

为了更便捷使用rsync命令,可以使用alias创建快捷命令:

alias scpr="rsync -P --rsh=ssh"

并将上述alias命令添加至~/.bashrc,即可使用scpr命令实现上述功能。

上述功能仅仅是rsync命令的简单应用之一,更多功能可以参考阮一峰老师的教程:

https://www.ruanyifeng.com/blog/2020/08/rsync.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注