如何有效地將僅修改過的檔案從磁碟複製到外部 USB?

如何有效地將僅修改過的檔案從磁碟複製到外部 USB?

我有一個名為my_projects_linuxinside Ubuntu 檔案系統的目錄,其中包含我多年來的所有工作。目錄包含檔案、子目錄等。

出於備份目的,我偶爾會將此目錄及其所有內容複製到外部硬碟。

因此,我的外部磁碟機的內容如下所示:

/mounted_drive/my_projects_linux
/mounted_drive/my_projects_windows  # the same idea to backup Windows work

因此,我正在尋找的是一個命令:

  1. 將作為

    cp /home/my_projects_linux /mounted_drive/my_projects_linux
    

    它應該用我的電腦中的新內容替換外部磁碟中的舊檔案、子目錄、子目錄內的檔案等。

  2. 動作要快。它應該只複製修改過的檔案或新建立的檔案。由於大小my_projects_linux>50GB,複製所有內容需要一個多小時,速度太慢了。實際上,自上次備份以來通常只更改了幾 MB,因此理論上可以更快地製作副本。

怎麼做?

我用谷歌搜尋到帶有標誌的 cp-u可能符合我的需求。那行得通嗎(例如,它能正確處理子目錄的子目錄)嗎?

另外,將檔案系統儲存在外部磁碟上是否是進行備份的適當方法,或者是否有更好的方法?例如,使用雲端?請注意,更奇特的方法應該很簡單,否則它不會比執行一個 shell 指令更容易。

答案1

您正在描述rsync設計的目的。從man rsync

   Rsync  finds  files  that  need to be transferred using a "quick
   check" algorithm (by default) that looks  for  files  that  have
   changed  in  size  or in last-modified time.  Any changes in the
   other preserved attributes (as requested by options) are made on
   the  destination  file  directly  when the quick check indicates
   that the file’s data does not need to be updated.

關於網路也有很多廢話,但在地化也很高興。
基本上您所需要的只是:

rsync -rtv /home/my_projects_linux /mounted_drive/my_projects_linux

有大量可用選項,但-rtv會同步r遞歸地,保持timecodes 相同,同時v詳細介紹它正在做什麼。

答案2

要回答你的第二個問題,一種更奇特的備份方法是rdiff-backup

rdiff-backup 將一個目錄備份到另一個目錄(可能透過網路)。目標目錄最終是來源目錄的副本,但額外的反向差異儲存在該目標目錄的特殊子目錄中,因此您仍然可以恢復前一段時間遺失的檔案。這個想法是結合鏡像和增量備份的最佳功能。 rdiff-backup 也保留子目錄、硬連結、開發檔案、權限、uid/gid 所有權、修改時間、擴充屬性、acls 和資源分支。

如果您確實想要基於雲端:我使用帶有付費訂閱的 CrashPlan。然後你絕不必須再考慮手動備份了。

答案3

我知道這個問題已經有一個公認的答案。但是,我想新增一個跨平台 GUI 解決方案,因為我看到您也使用 Windows。我出於同樣的目的使用免費文件同步。這也是牙線。

配置絕對直觀,您可以儲存不同的同步作業。

還有一個 ppa,但目前不包括 14.04 的最新版本。透過 ppa 安裝:

sudo apt-add-repository ppa:freefilesync/ffs
sudo apt-get update

相關內容