Ubuntu
在兩個本地文件夾之間同步數百萬個文件的優雅方式
我想
rsync
每天將一個包含數百萬個文件的文件夾從本地目錄轉移到另一個目錄。文件本身很少更改。我想減少對正在執行的伺服器的影響,例如 CPU 時間或 I/O,所以我使用下面的命令
nice -n19 ionice -c3 rsync -ac --delete /foo /backup/
但是,我發現它在執行
rsync
命令的過程中仍然會導致大量的 CPU 峰值和高 I/O 消耗。有沒有更好的方法來完成我的目標?
您是否真的需要比較校驗和,而不僅僅是 m 日期,甚至只是文件的大小?
當你使用 -c
-c, --checksum skip based on checksum, not mod-time & size
這意味著您需要讀取兩個文件系統上每個文件的全部內容。如果你關閉它並使用 mod-time 和 size,你只需要 stat 目錄。在這種情況下,我認為 bwlimit 選項不會有太大幫助,因為它控制 rsync 程序之間的速率,而不是文件 I/O 確定校驗和的速率。