系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux提高大文件的拷貝效率

Linux如何提高大文件的拷貝效率

時(shí)間:2015-02-09 17:22:59 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時(shí)看資訊 2. 請使用手機(jī)瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150209/37783.html 手機(jī)查看 評論

  Linux系統(tǒng)操作中,當(dāng)你在進(jìn)行機(jī)器直接的拷貝時(shí),遇到大文件的時(shí)候非常浪費(fèi)時(shí)間,特別是將文件同時(shí)拷貝到多臺機(jī)器上的時(shí)候,那么有什么好的方法能夠提高大文件的拷貝效率呢?一起來學(xué)習(xí)下吧。

 Linux如何提高大文件的拷貝效率

  你可以從源機(jī)器逐個(gè)拷貝到逐臺目標(biāo)機(jī)器,但是往往時(shí)間也是成倍的;蛘吣阋部梢酝瑫r(shí)從源機(jī)器同時(shí)拷貝到多個(gè)目標(biāo)機(jī)器,但是受制于源機(jī)器的帶寬等因素,速度并不見得真的很快。

  還好,借助一些UNIX工具可以做的更好。把tee和FIFO組合起來,可以形成一個(gè)文件快速分發(fā)鏈:處于分發(fā)鏈中的每臺機(jī)器會保存文件,同時(shí)還分發(fā)給它的下一環(huán)。

  首先,選定一臺目標(biāo)機(jī)器做為分發(fā)鏈的最后一環(huán),在這臺機(jī)器上只需要用nc監(jiān)聽(假定端口是1234),再通過管道由pigz解壓縮,繼續(xù)通過管道把數(shù)據(jù)交由tar來分解。

  nc -l 1234| pigz -d | tar xvf -

  然后,再從分發(fā)鏈的末端往上走,設(shè)置其它目標(biāo)機(jī)器,同樣要經(jīng)過監(jiān)聽、解壓、分解,不過在解壓之前我們通過tee命令將數(shù)據(jù)輸出到命名管道(FIFO),另外的一條shell管道會將這些未解壓的數(shù)據(jù)同時(shí)分發(fā)到分發(fā)鏈的下一環(huán):

  mkfifo myfifo

  nc hostname_of_next_box 1234 nc -l 1234| tee myfifo | pigz -d | tar xvf -

  最后,在源機(jī)器上啟動分發(fā)鏈,讓數(shù)據(jù)傳輸?shù)椒职l(fā)鏈的第一環(huán):

  tar cv some_files | pigz | nc hostname_of_first_box 1234

  在我的測試中,分發(fā)鏈中的每臺機(jī)器大概損失了3%-10%的性能(相對于1對1的拷貝而言),但是相對逐個(gè)逐個(gè)的拷貝或者單臺機(jī)器向多臺機(jī)器同時(shí)分發(fā),效率提升是很明顯的。

  上面就是Linux提高大文件拷貝效率的方法介紹了,主要通過UNIX工具形成一個(gè)文件快速分發(fā)鏈來實(shí)現(xiàn)大文件的快速拷貝,效率提高了不少。

標(biāo)簽 文件

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨(dú)特見解

立即評論

以上留言僅代表用戶個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

掃碼關(guān)注
掃碼關(guān)注

掃碼關(guān)注 官方交流群 軟件收錄