linux 断点续传命令 rsync

  • 2018-07-02
  • 浏览 (430)

rsync 是一个在linux下用来进行远程拷贝文件的命令,实现意外中断后可以继传,命令如下:

#將本地文件拷贝到远程
rsync -P --rsh=ssh source.tar.gz 192.168.1.128:/home/source.tar.gz

#將远程文件拷贝到本地
rsync -P --rsh=ssh 192.168.1.128:/home/source.tar.gz source.tar.gz

#將远程文件拷贝到本地,远程的ssh端口是1234
rsync -P -e 'ssh -p 1234' 192.168.1.128:/home/source.tar.gz source.tar.gz

-P: 是包含了 “–partial –progress”, 部分传送和显示进度。

-rsh=ssh 表示使用ssh协议传送数据。

如果不想每次都使用 rsync -P rsh=ssh 之类的,可以写成alias scpr="rsync -P --rsh=ssh"。

那么下次就可以直接使用 scpr source.tar.gz 192.168.1.128:/home/source.tar.gz 来拷贝数据了。

在传输过程中,目标文件会以.home.tar.xxxx文件也隐藏,可以用ls -a来显示出来。如果scpr中断了,那么该文件会变成用户指定的目标文件"home.tar",下次传的时候又会改成.home.tar.xxxx文件。

执行rsync过程中,我们肯定希望把这个job放入后台执行,而不因为secureCRT类似的窗口中断受影响,那么在执行了

rsync -P --rsh=ssh source.tar.gz 192.168.1.128:/home/source.tar.gz, 再输出密码后,可以用ctrl+z 来中断,再使用bg命令让它在后台执行。


scp 就是 secure copy,也是一个在linux下用来进行远程拷贝文件的命令,但传输中断的话不能续传。

1、把当前一个文件copy到远程另外一台主机上:
scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root

2、把当前一个文件copy到远程另外一台主机上,另一台的ssh端口是1022:
scp -P 1022 /home/daisy/full.tar.gz root@172.19.2.75:/home/root

3、把文件从远程主机copy到当前系统
scp root@172.19.2.75:/home/root/full.tar.gz home/daisy/full.tar.gz
正文到此结束