在Linux中我将经常使用 scp 来进行上传和下载内容.

SCP 

然而, scp是通过ssh协议传输数据。如果想传输的的内容表较小,那比较理想,但是如果想传输一个很大的数据,比如200G左右,通过scp拷贝时,有可能遇到服务器断电/网络链接问题,那就悲剧了! 一旦发生我们就需要从来再来!!!

RSYNC

在Linux中类似scp拷贝的另一个命令 rsync就可以实现意外中断后,下次继续传,命令如下:

rsync -P --rsh=ssh yourserverip:/home/encore/big.zip  ~/
rsync -P --rsh=ssh ~/big.zip  yourserverip:/home/encore/

-P: 表示为 '–partial –progress', 部分传送和显示进度

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

如果你不想每次都使用 rsync -P rsh=ssh 之类的,我们为它创建一个快捷命令:

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

那么下次就可以直接使用 rscp ~/big.zip  yourserverip:/home/encore 来传输数据!

在传输过程中,目标文件会以 .big.zip.xxxxxx文件也隐藏,此时你可以用 la -a 来显示出来。如果rscp中断了,那么该文件会变成用户指定的目标文件 big.zip , 下次传的时候又会改成 .big.zip.xxxxxx 文件。

当执行rsync过程中,我们肯定希望把这个job放入后台执行,而不会因为secureCRT类似的窗口中断受影响,那么在执行了 rsync -P --rsh=ssh big.zip yourserverip:/home/encore, 再输出密码后,可以用ctrl+z 来中断,再使用bg命令让它在后台执行。