引言
我们通过自己远程服务器下载一些文件,然后我们希望把这些文件传回到本地。最常用的方法是sftp。
问题是 怎么提高速度?
解决问题的思路
将服务器上的大文件分割成多个文件下载到本地之后再还原。
步骤
分割文件
假设需要下载文件是~/interesting.avi
split -n 4 -d ~/interesting.avi
-n 4
文件分成4份
-d
分割后的文件以数字结尾
得到如下结果
x00
x01
x02
x03
下载文件
方法1 用FileZilla
设置 Editor
-> Preference ...
设置同时下载数量为 10 Concurrent transfers
-> Maximum simultaneous transfer
为10
这个是我的下载速度
可以看到每个任务的速度不是很快,但是总体速度还可以。后来我发现一个问题,我的FileZilla不能断点续传,网上一查,大家表示FileZilla是可以的,但是我怎么设置都不行,所以我又找了一个方法。
方法2 用rsync
这个命令可以实现断点续传。
rsync的参数列表,详见 rsync --help
rsync -azP --rsh=ssh username@ip:~/x00 ~/x00
或者
nohup rsync -azP --rsh=ssh username@ip:~/x00 ~/x00 &
这样可以在后台同时下载多个任务。
合并文件
这个命令比较简单
cat x* > interesting.avi
合并所有 x开头的文件
总结
这个问题和”如何将大象放进冰箱“是一个道理。