Backup

cp -al 快照,其硬連結在編輯時被定向到新文件

  • April 5, 2019

我正在嘗試定期拍攝大量文件夾的快照。

我在這裡讀過:http: //www.mikerubel.org/computers/rsync_snapshots/#Incremental

cp -al它通過簡單地複制硬連結來拍攝文件夾的快照。

這一切都很好,但問題是在這個快照中,如果我更改一個文件,它會在所有快照中更改。我想要的是讓系統在更改時創建一個新文件並連結到該文件。這樣每個快照都不會在編輯第一個文件時變得無效。

我怎樣才能做到這一點?

ps 我試過rsync -a --delete --link-dest=../backup.1 source_directory/ backup.0/了,但它有同樣的問題。

這就是硬連結的工作方式。但是,有一些方法可以解決它:

我想到了幾個選項:

  • 使用支持寫時復製文件的文件系統,例如btrfs. 當然,如果您使用 btrfs,您只需使用它的本機快照……如果您的文件系統支持它,您可以使用cp --reflink=always. 不幸的是,ext4 不支持這一點。
  • 僅在您的快照之間共享硬連結,而不是與原始快照共享。也就是說,當您第一次看到給定版本的文件時,將其複製到快照中。但下一次,將其連結到上一個快照中的那個。(不知道我用什麼程序來做這件事——十年前——但搜尋出現了 dirvish、obnam、storebackup 和 rsnapshot)
  • 根據您的文件更改方式,您可能能夠保證使用寫入臨時/重命名來更改它們,然後這將破壞硬連結 - 因此快照中的版本將保持原始狀態。但是,這不太安全,因為錯誤可能會損壞您的快照。
  • 拍攝整個文件系統的 LVM 快照。

當然,還有另一種選擇——使用適當的備份系統。大多數人都可以設法只備份更改的文件。

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