3
我需要比較兩個目錄來驗證備份。如何比較重複目錄之間的文件大小匹配?
說我的目錄如下所示:
Filename Filesize Filename Filesize
[email protected]_server:~/mydir/ [email protected]_server:~/mydir/
file1000.txt 4182410737 file1000.txt 4182410737
file1001.txt 8241410737 - <-- missing on backup_server!
... ...
file9999.txt 2410418737 file9999.txt 1111111111 <-- size != main_server
是否有一個快速班輪,將讓我接近像輸出:
Invalid Backup Files:
file1001.txt
file9999.txt
(與目標指示備份腳本重新提取這些文件)
我試圖得到以下變化無濟於事。
[main_server] $ rsync -n ~/mydir/ [email protected]_server:~/mydir
我不能做rsync
備份目錄本身,因爲它需要的時間太長(8-24hrs)。相反,我運行多個線程scp
來批量獲取文件。這通常會在1小時內完成<。但是,偶爾我會發現一些文件錯過了(可能是連接斷開)。
速度是一個優先事項,所以文件大小應該足夠。但我願意加入checksum
,前提是它不會像我在rsync
中發現的那樣降低流程速度。
這裏是我的測試過程:
# Generate Large Files (1GB)
for i in {1..100}; do head -c 1073741824 </dev/urandom >foo-$i ; done
# SCP them from src to dest
for i in {1..100}; do (scp ~/mydir/foo-$i [email protected]_server:~/mydir/ &) ; sleep 0.1 ; done
# Confirm destination has everything from source
# This is the point of the question. I've tried:
rsync -Sa ~/mydir/ [email protected]_server:~/mydir
# Way too slow
你有什麼建議?
如果你有預算,有商業文件傳輸解決方案比SCP或SFTP有更好的性能。 – Kenster
如果您已經有了部分副本,如您所見,'rsync'應該比'scp'快得多。 – John1024
@ John1024,謝謝。我只是在一次測試中嘗試過:備份100個1GB文件(用urandom填充)。我先把它們搞定了。證實所有100個都在那裏和正確的文件大小。然後我運行'rsync -Sa〜/ source /〜/ destination',看到所有100個文件再次同步,這次通過'rsync'進行同步。你說的這些不是「部分拷貝」。它們是相同的副本,通過'scp'從一臺服務器發送到另一臺服務器。我錯過了什麼?第一個'scp'花了4m44s。 rsync(在所有的文件都是'scp'之後)花了16m12s。我希望'scp'需要<5m,確認只需幾個'ms'。 – Ryan