引言
我們通過自己遠(yuǎn)程服務(wù)器下載一些文件,然后我們希望把這些文件傳回到本地。最常用的方法是sftp。
問題是 怎么提高速度?
解決問題的思路
將服務(wù)器上的大文件分割成多個文件下載到本地之后再還原。
步驟
分割文件
假設(shè)需要下載文件是~/interesting.avi
split -n 4 -d ~/interesting.avi
-n 4
文件分成4份
-d
分割后的文件以數(shù)字結(jié)尾
得到如下結(jié)果
x00
x01
x02
x03
下載文件
方法1 用FileZilla
設(shè)置 Editor
-> Preference ...
設(shè)置同時下載數(shù)量為 10 Concurrent transfers
-> Maximum simultaneous transfer
為10
這個是我的下載速度
Result
可以看到每個任務(wù)的速度不是很快,但是總體速度還可以。后來我發(fā)現(xiàn)一個問題,我的FileZilla不能斷點(diǎn)續(xù)傳,網(wǎng)上一查,大家表示FileZilla是可以的,但是我怎么設(shè)置都不行,所以我又找了一個方法。
方法2 用rsync
這個命令可以實(shí)現(xiàn)斷點(diǎn)續(xù)傳。
rsync的參數(shù)列表,詳見 rsync --help
rsync -azP --rsh=ssh username@ip:~/x00 ~/x00
或者
nohup rsync -azP --rsh=ssh username@ip:~/x00 ~/x00 &
這樣可以在后臺同時下載多個任務(wù)。
合并文件
這個命令比較簡單
cat x* > interesting.avi
合并所有 x開頭的文件
總結(jié)
這個問題和”如何將大象放進(jìn)冰箱“是一個道理。