0%

Linux断点续传大文件

后台断点续传大文件

使用rync指令进行断点续传

1
rsync -P --rsh=ssh slurm@XXX.XXX.XXX.XXX:/path/to/file.tar.gz file.tar.gz

以上指令表示将远端的file.tar.gz文件传输到近端,输入以上指令之后需要输入密码,此时输入密码便开始进行传输。此时传输的程序是运行在前台的,我们需要将该程序转入后台运行。此时使用Ctrl+z挂起该传输进程,再使用jobs指令能够看到挂起的进程的序号以及状态,例如序号为1,接下来使用bg %1便能将这个序号为1的挂起任务重新再后台进行执行。但是此时如果退出登录该传输进程还是会被kill,原因是该进程此时属于这个登录用户,该用户下线之后该进程便会被自动注销关闭,所以需要将该进程的所有者由当前登录的用户移交给root用户,使用disown -h %1便能达到这个效果,此时该进程便能顺利的在后台进行传输了,如果需要中断,只能使用手动查找到传输的进程,使用kill指令进行关闭。

使用ssh协议来进行rsync操作,能够在传输的时候暂停或者因为网络故障等中断传输以后下次可以继续传输,传输过程中,被传输的文件会被存储为一个隐藏文件,文件传输完毕后该隐藏文件会被转换成普通文件。如果传输过程中断,该隐藏文件也会被转换为普通文件,下次继续传输时会再转换为隐藏文件进行传输。

断点传输目录

使用方法基本一致

1
rsync -Pr --rsh=ssh source/dirname slurm@XXX.XXX.XXX.XXX:/home/slurm/dest/dirname

断点续传目录的时候,目录中的文件会被依次以上面的那种方法的形式进行传输,传输如果中断,之前已经上传完毕的文件会被进行完整性检查,如果确认是完整传输的文件,就不会被继续传输了。