使用 rsync 移動大目錄

使用 rsync 移動大目錄

我計劃從安裝在 SAN(板外)上的 linux o/sa 目錄移至外部儲存進行備份。目錄大小為14TB.

我確實有使用 rsync 將檔案移入/移出的經驗,但從未像現在這樣對大尺寸目錄/檔案這樣做。

這些目錄按年/月/日/小時層次結構排列,並支援原始日誌進行分析。

問題

綜上所述,由於資源限制,我無法將完整的 14TB 移至外部/備份儲存空間。我目前擁有的備份空間最大為 8 TB。那麼是否有一個命令或開關/參數我可以告訴 rsync 僅將檔案複製到提到的大小,即僅 TB。

筆記 我不太關心文件的性質,只是超出了一定的大小,我不想移動任何資料。

答案1

透過提供限制,當 rsync 複製了一定數量的位元組時,您無法讓 rsync 停止。就可以正常運作了

rsync -a /src/ /dest 

當 /dest 已滿時,它將停止並出現錯誤

 rsync: write failed on "...": No space left on device (28)

你可以用腳本做一些事情

find /src -printf "%p %s\n" >filelist_size

然後使用 awk 之類的東西來讀取filelist_size並列印檔案名稱(filelist如果檔案大小的總和低於某個閾值)。

然後您可以使用files-from=filelistrsync 的參數。

用 python 寫這篇可能會更容易。

相關內容