Ubuntu

從一個硬碟驅動器複製到另一個硬碟驅動器後驗證大目錄

  • December 18, 2019

我有一個使用 Ubuntu 的家庭文件伺服器。

最近,我的一個驅動器裝滿了,所以我又買了一個,把它扔了進去。

我有一個非常大的文件夾,該目錄大小約為 1.7 T,包含大量文件。

我使用GCP將文件從舊驅動器複製到新驅動器,它似乎執行良好。

我現在想在從舊驅動器中刪除數據以釋放空間之前,對照舊驅動器上的原始目錄驗證新驅動器上的新目錄。我知道我可以做一個 CRC 檢查來做到這一點。

具體來說,我該怎麼做?

我只需使用以下diff命令:

diff -rq --no-dereference /path/to/old/drive/ /path/to/new/drive/

這會讀取並比較目錄樹中的每個文件並報告任何差異。該-r標誌遞歸地比較目錄,而該-q標誌只是在文件不同時向螢幕列印一條消息 - 而不是列印實際差異(就像它對文本文件所做的那樣)。如果存在不同的符號連結,則該--no-dereference標誌可能很有用,例如,在一個目錄中是符號連結,而在其相應目錄中,是連結到的文件的副本。

如果該diff命令沒有輸出任何輸出,則表示目錄樹確實是相同的;可以執行echo $?驗證一下它的退出狀態是0,說明兩組文件是一樣的。

我不認為在這種情況下計算 CRC 或校驗和特別有用。如果這兩組文件位於不同的系統上,並且每個系統都可以為自己的一組文件計算校驗和,那麼只有校驗和需要通過網路發送,這將更有意義。計算校驗和的另一個常見原因是保留校驗和的副本以備將來使用。

引用自:https://unix.stackexchange.com/questions/313089