Linux
比較兩個遠端伺服器之間的文件校驗和
在我的本地盒子上
"machineA"
,我有兩個文件夾"/primary"
和"/secondary"
. 這兩個文件夾中有一些文件。現在在遠端伺服器上,"machineB"
我有一個"/bat/snap/"
包含大量文件的文件夾。裡面的所有文件
"/primary"
和"/secondary"
文件夾都"machineA"
應該"machineB"
在這個目錄的遠端伺服器中"/bat/snap/"
。現在我需要將本地框中所有文件"/primary"
和文件夾的校驗和與該目錄中的遠端伺服器進行比較。如果校驗和有任何不匹配,那麼我想報告所有有問題的文件"/secondary"``"machineA"``"/bat/snap/"``"machineA"
我需要在這裡使用 md5checksum 嗎?
更新
這是我正在執行的命令
"machineA"
:find /primary/ /secondary/ -type f | xargs md5sum | ssh machineB '(cd /bat/snap/ && md5sum -c)' | egrep -v 'OK$'
以下是我遇到的錯誤,之後我停止了上述命令。我檢查了兩個伺服器,我可以看到這個文件存在,那麼有什麼問題呢?
md5sum: /primary/abc_monthly_134_proc_7.data: No such file or directory /primary/abc_monthly_134_proc_7.data: FAILED open or read
這就是
md*sum
編寫各種文件的目的。在機器 A 上:
find primary secondary -type f | xargs md5sum > checksum.md5
(複製文件到機器B)
機器 B:
md5sum -c checksum.md5
編輯:組合成一個命令:
find primary secondary -type f | xargs md5sum | ssh machineB '(cd /location_on_B/ && md5sum -c)' | egrep -v 'OK$'
(另一種選擇是告訴
rsync
以空執行模式執行--checksum
。)