Linux
如何在 Linux 中輕鬆確認兩個單獨的目錄具有完全相同的內容?
CentOS 5.x
Mq 問題似乎與此類似,但我不確定…
我有兩台伺服器(彼此完全隔離),每台伺服器都有一個目錄和子目錄,它們應該具有相同的確切內容。
例如,目錄佈局可能類似於:
伺服器 A -
/opt/foo/foob/1092380298309128301283/123.txt /opt/foo/foob/5094380298309128301283/456.txt /opt/foo/foob/5092380298309128301283/789.txt /opt/foo/foob/1592380298309128301283/abc.txt
伺服器 B -
/opt/foo/foob/1092380298309128301283/123.txt /opt/foo/foob/5094380298309128301283/456.txt /opt/foo/foob/5092380298309128301283/789.txt /opt/foo/foob/1592380298309128301283/abc.txt
理想情況下,我想要一種進行遞歸檢查並確認一切匹配的方法。
我還想避免使用任何第三方工具。
有任何想法嗎?
一種好方法是在樹中的每個文件上使用 md5sums:
在 server1 上執行:
find /opt/foo/foob/ -type f -print0 | xargs -0 md5sum > report_from_server1.tx
在 server2 上執行
find /opt/foo/foob/ -type f -print0 | xargs -0 md5sum > report_from_server2.tx
然後只需比較兩個文件(使用差異)或任何你喜歡的文件。
這與您正在尋找的內容一致嗎?
當然,如果需要,您可以使用 SSH 遠端執行命令。
如果您不一定關心發生了什麼變化,只是有些事情發生了變化,那麼 rsync 仍然非常適合。嘗試執行此命令並查看輸出,假設這是從“servera”執行的。
rsync -avcn /opt/foo/ serverb:/opt/foo
如果您實際執行同步過程,結果列表將是那些將被修改的文件。請記住,即使僅更改了時間戳,文件也會顯示在列表中,但內容保持不變。由於我們添加了
-n
標誌,因此實際上不會執行任何操作,僅報告。