您好,登錄后才能下訂單哦!
這篇文章主要介紹“Linux如何提高大文件的拷貝效率”,在日常操作中,相信很多人在Linux如何提高大文件的拷貝效率問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux如何提高大文件的拷貝效率”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
你可以從源機器逐個拷貝到逐臺目標機器,但是往往時間也是成倍的。或者你也可以同時從源機器同時拷貝到多個目標機器,但是受制于源機器的帶寬等因素,速度并不見得真的很快。
還好,借助一些UNIX工具可以做的更好。把tee和FIFO組合起來,可以形成一個文件快速分發鏈:處于分發鏈中的每臺機器會保存文件,同時還分發給它的下一環。
首先,選定一臺目標機器做為分發鏈的最后一環,在這臺機器上只需要用nc監聽(假定端口是1234),再通過管道由pigz解壓縮,繼續通過管道把數據交由tar來分解。
nc -l 1234| pigz -d | tar xvf -
然后,再從分發鏈的末端往上走,設置其它目標機器,同樣要經過監聽、解壓、分解,不過在解壓之前我們通過tee命令將數據輸出到命名管道(FIFO),另外的一條shell管道會將這些未解壓的數據同時分發到分發鏈的下一環:
mkfifo myfifo
nc hostname_of_next_box 1234 nc -l 1234| tee myfifo | pigz -d | tar xvf -
最后,在源機器上啟動分發鏈,讓數據傳輸到分發鏈的第一環:
tar cv some_files | pigz | nc hostname_of_first_box 1234
在我的測試中,分發鏈中的每臺機器大概損失了3%-10%的性能(相對于1對1的拷貝而言),但是相對逐個逐個的拷貝或者單臺機器向多臺機器同時分發,效率提升是很明顯的。
到此,關于“Linux如何提高大文件的拷貝效率”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。