rsync 增量傳輸大檔案優化 Linux系統

2022-09-23 07:18:08 字數 938 閱讀 1875

背景rsync用來同步資料非常的好用,特別是增量同步。但是有一種情況如果不增加特定的引數就不是很好用了。比如,我公司資料同步場景:每月月初都進行同步幾個100多g的壓縮包資料,因限速設定,會連續好幾天用來同步資料,但當同步到近100g的時候,再次啟用rsync同步時,會出現以下兩種問題:1)但是發現等了好久都沒有進行資料傳輸,倒是機器的io一直居高不下。2)長時間未進行資料傳輸,不知因網路問題,還是時間超時問題,導致資料不能正常進行增量同步

原因rsync具體的增量同步演算法不太清楚。根據它的表現來看,可能在增量同步已經存在的乙個檔案時,會校驗已傳輸部分資料是否已原始檔一致,校驗完成才繼續增量同步這個檔案剩下的資料。所以如果對乙個大檔案以這樣的演算法來增量同步是非常花時間並且占用io資源的。

方法rsync有乙個引數能快速恢復大檔案的增量同步,--append。設定–append引數會在增量同步時計算檔案 大小並直接追加新的資料到檔案,這樣就省了費io校驗的過程。

注意:這個引數最好只在原始檔和目標檔案都不會更改的時候使用比較安全,比如備份的檔案。

案例:test-2019-06目錄下為150g的壓縮檔案,因網路頻寬問題,設定定時任務,每天正常情況下,只能同步10g左右資料rsync -vzrtp -p --append --bwlimit=1024 -e "/usr/bin/ssh -p 22 -o stricthostkeychecking=no" [email protected]:/tmp/test-2019-06 /tmp/backup

引數詳解:-v --verbose 詳細模式輸出-z, --compress 對備份的檔案在傳輸時進行壓縮處理-t, --times 保持檔案時間資訊-r, --recursive 對子目錄以遞迴模式處理-p, --perms 保持檔案許可權-p, --partial 保留那些因故沒有完全傳輸的檔案,以是加快隨後的再次傳輸

--bwlimit=kbps 限制i/o頻寬,kbytes per second

rsync命令快速刪大檔案

很多情況下我們會遇到伺服器日誌目錄幾十個g,或者附件目錄過大的情況,如果我們使用常規的rm命令來進行刪除的話,會非常慢。但是rsync命令提供了這樣乙個功能,可以秒刪。通過同步指令的 delete before來刪除目錄 將空目錄同步至非空目錄 首先新建立乙個空目錄empty dir,然後將空目錄的...

增量更新同步 檔案增量同步之rsync演算法

之前畢設有用到檔案增量同步,於是乎就記錄一下。在a和b兩個不同端之間有相似度很高的檔案,同時這個檔案又比較大。如果通過全量傳輸來更新,http傳輸量很大,非常不友好。那麼可以通過某些手段,只上傳修改的內容,其餘內容復用舊檔案。對於a b檔案進行同步為例,首先對a檔案進行分塊,並且對每一塊進行摘要計算...

rsync 無密碼傳輸檔案

最近機器遷移,需要備份檔案,但各個機器間不能穿梭,即無法通過scp來傳輸檔案,在運維的建議下,選用了rsync作為傳輸的工具。預設情況ubuntu安裝了rsync服務,但在 etc下沒有配置檔案,一般情況可以copy示例檔案到 etc下。配置無帳號登入的示例如下,需要主要高亮的部分。mail com...