同步和備份程序

出自 Arch Linux 中文维基

這個頁面列出並比較了在兩個或多個位置之間同步數據的應用程序,以及在此功能之上建立的以備份為目的的製作重要數據的增量副本的應用程序。因為它們的關係,這兩組程序共享許多特徵所有在同一篇文章裡解釋描述它們.

備份概覽[編輯 | 編輯原始碼]

備份重要數據是必須採取的措施,因為人和機器的處理錯誤隨着時間推移非常可能產生損壞,並且存儲數據的物理媒體也不可避免的註定損壞. 為了選擇滿足每個人的需求的程序,下面的一些問題要考慮:

  • 存儲數據的備份媒介, 比如. CD, DVD, 遠程服務器, 外部硬盤, 等的種類.
  • 計劃的備份頻率, 比如. 每天, 每周, 每月, 等等.
  • 希望從備份獲取的功能,比如,壓縮,加密,處理重命名等.
  • 如果需要的話存儲重命名的方式.

數據同步[編輯 | 編輯原始碼]

這些應用做的只是以一種「鏡像」的方式在多地點/多機器間保持目錄同步。 儘管如此,它們中的大多數仍然運行存儲和轉換到老版本的修改過的或者刪除的文件.

也可查閱:

說明[編輯 | 編輯原始碼]

名字
應用的名字,鏈接到archwiki文章或者官方網站.
到包的鏈接.
實現
應用程序基於的編程語言,庫或者實用程序.
增量傳輸
僅僅文件修改過的 部分 會被傳輸.
加密傳輸
當通過網絡傳輸時默認加密.
FS元數據
文件的權限和屬性是同步的 .
可恢復
同步能繼續,如果被打斷的話.
處理重命名
移動過/或重命名過的文件會被監測並不會存儲或者傳輸兩次. 它通常意味着會計算文件或文件塊的校驗和.程序如果沒有這項功能能通過和 hsyncAUR結合起來來實現, 這個程序 只做 同步命名.
版本控制
舊版本的文件也被備份了 (反向增量備份).
改變傳播
指定能傳播多少地點.
  • 單向 意味着兩地點的單向傳播,
  • 雙向 意味着兩地點的雙向傳播
  • 多向 意味着多地點的完全同步.
衝突解決方案
這個程序會要麼自動要麼交互的處理文件衝突, 即是它不靜默的丟棄衝突文件. 這項屬性不適應於只支持單方向傳播的程序.
FS監聽
應用程序監聽文件系統的變化來觸發同步.
CLI
應用程序提供命令行界面.
其它界面
應用有的特殊用戶界面, 比如. GUI, TUI, 或者基於網頁.
證書
服務器程序和客戶端程序的證書.
其它平台
不僅僅支持Linux.
維護
項目還在被維護.
特性
特別是能將應用程序和其它的區分開的特性的說明.

表格[編輯 | 編輯原始碼]

本文或本章節的語言、語法或風格需要改進。參考:Help:Style

原因:明確列出了支持的協議 / 工具. 丟棄 加密傳輸 這一列 因為它取決於協議/工具. 簡化並給改變傳輸 列上色 並把它向左移. 拆分未維護到子分區? 查閱 User:Larivact/drafts/Synchronization and backup programs#Synchronization.(在Talk:同步和備份程序討論)

這篇文章的某些內容需要擴充。

原因: 空的地方還需要填寫. (在 Talk:同步和備份程序 中討論)
名字 安裝包 實現 增量傳輸 加密傳輸 FS元數據 可恢復 處理重命名 版本控制 改變傳播 衝突解決方案 FS監聽 CLI 其它界面 證書 其它平台 維護 特性
FreeFileSync freefilesyncAUR C++ ? SFTP [1] ? ? Yes [2] Yes [3] unidirectional / multidirectional ? GPL Windows, macOS
git-annex git-annex Haskell, git rsync [4] rsync [5] ? ? ? multidirectional; with git remotes [6] 重命名衝突文件 [7] ? git-annex assistant GPLv3 macOS, Android 用git管理文件
osync.sh osyncAUR Bash, based on rsync rsync rsync ? bidirectional 保存多版本的文件 [8] 可選的 [9] BSD
rclone rclone Go [10] ? ? ? ? ? unidirectional [11] ? ? RcloneBrowser MIT *BSD, Plan9, Solaris, Windows, macOS 針對與雲存儲同步進行了優化, 表現因遠程位置支持的特性而異.
rdiff-backup rdiff-backup Python 2, librsync rsync rsync ? unidirectional GPL Win32 ?
Resilio Sync rslsyncAUR C++ ? ? multidirectional ? ? Web Proprietary freemium FreeBSD, Windows, macOS, Android, iOS, Windows Phone, Amazon Kindle Fire P2P 同步
Rsync rsync C SSH or native protocol
  • --link-dest with hard links [12]
  • --backup
unidirectional Rsync#Front-ends GPLv3 Win32 在所有Linux發行本上的標準工具.
SparkleShare sparkleshare C#, git AES-256 [13] ? ? ? ? ? GPLv3 Windows, macOS 能通過SSH和任何Git服務器同步.
Syncany syncanyAUR Java ? ? ? ? ? ? ? ? ? GPLv3 [14]
Syncthing syncthing Go Yes [15] Yes [16] partial [17] Yes ? Yes [18], previous versions moved to archive folder multidirectional 重命名一個文件 [19] Yes Web, GTK MPL v2 BSD, Windows, macOS, Android, Kindle Paperwhite P2P sync
Synkron synkronAUR C++ ? ? ? ? ? ? multidirectional ? ? Qt GPLv2 Windows, macOS No
taskd taskd C++, Python ? ? ? multidirectional ? MIT Android
Unison unison OCaml partial [20] optional [21] Yes [22] bidirectional interactive GTK2 GPL FreeBSD, Windows, macOS, Android Yes [23]

增量備份[編輯 | 編輯原始碼]

那些能 增量備份的程序會記住並考慮上次賬戶運行期間備份的數據(所謂的 "差異") 並消除重複未更改數據的需要.將數據還原到特定時間點需要定位上次完整備份和所有增量備份到贏應恢復的時刻 . 這種備份方法對經常備份的人很有用.

可查閱:

說明:

  • 名字: 應用名字, 鏈接到archwiki文章或者官方網站.
  • : 鏈接到安裝包.
  • 實現: 程序基於的編程語言、庫或者實用工具.
  • 壓縮存儲: 用作存儲的壓縮方法.
  • 加密存儲: 加密被用作存儲.
  • 增量傳輸: 只有文件修改過的 部分 會被傳輸.
  • 加密傳輸: 當通過網絡傳輸時數據默認加密.
  • 文件系統元數據: 文件系統權限和屬性也備份了.
  • 易訪問: 備份明確地存儲在文件系統中,或者可以掛載.
  • 可恢復: 如果中斷備份可以不重啟繼續.
  • 處理重命名: 移動/重命名的文件會被監測並不會存儲或轉移兩次; 它通常意味着它會計算文件或文件塊的校驗和.
  • 命令行: 應用程序是命令行驅動的,即它可用來編寫腳本.
  • 其它界面: 這個應用有其它特定的用戶界面,比如 GUI, TUI, 或者基於網絡的接口.
  • 證書: 服務器或客戶端程序的證書.
  • 其它平台: 除了Linux之外支持的操作系統.
  • 維護: 這個項目是否還在維護.
  • 特性: 特別是能將應用程序和其它的區分開的特性的說明.

單機器[編輯 | 編輯原始碼]

這些程序針對把數據從它們安裝的機器備份, 儘管備份目的可能在外部機器或者是存儲媒體.

基於塊的增量[編輯 | 編輯原始碼]

這篇文章的某些內容需要擴充。

原因: 你可以補全空的地方. 比如文件元數據 列: 不成熟 是什麼意思? 可恢復 列: 只可以暫停 / 有點通過tar 是什麼意思? (在 Talk:同步和備份程序 中討論)

如果一個文件被修改, 下次快照這些程序只存儲修改過的 部分 . 與 #基於文件的增量 的程序相比, 它們在磁盤方面效率更高, 特別是大文件但是只有小修改; 另一方面,存檔的快照必須能用創造它們的備份程序打開 , 因為文件必須從二進制差異中重建.

名字 實現 壓縮存儲 加密存儲 增量傳輸 加密傳輸 文件元數據 容易訪問 可恢復 處理重命名 命令行 其他界面 證書 其它平台 維護 特性
Areca Backup arecaAUR Java Zip, Zip64 AES128, AES256 只可以暫停 GPLv2 Windows
BorgBackup borg Python, C (Cython) lz4, zlib, lzma, zstd AES256 SSH [24] [25] [26] third party BSD *BSD, macOS, Windows (Cygwin / WSL)[27] 基於可變長度塊的重複數據刪除;支持本地和基於ssh的遠程備份目的地.
bup bup bup-gitAUR C, Python, git 不成熟 [28] 在你離開的地方繼續 [29] bupsAUR GPLv2 NetBSD, Windows, macOS 和git一樣的存儲格式.
Duplicati duplicati-latestAUR C# scheduled for 2.0 release Pausing only LGPL Windows
Duplicity duplicity librsync gzip gpg ? Yes GPL
Kup Backup System kup rsync, bup front-end Immature bup Qt GPLv2
restic restic restic-gitAUR Go [30] AES-256 [31] [32] [33] [34] [35] BSD OpenBSD, Windows, macOS 支持多種通過本地或通過 rclone的雲服務存儲.
ZBackup zbackupAUR C++ LZMA, LZO AES ? planned [36] Kinda through tar GPLv2 庫由不可變文件組成.

基於文件的增量[編輯 | 編輯原始碼]

這篇文章的某些內容需要擴充。

原因: 你可以填空的地方. (在 Talk:同步和備份程序 中討論)

如果文件被修改, 這些文件會在下次快照存儲整個版本的文件. 與 #基於塊的增量 應用相比, 它們對存儲空間的利用率不夠高, 特別是備份大文件但是修改小時; 另一方面, 通常存檔的快照沒有備份程序安裝的時候也能打開.

特殊說明:

  • 硬鏈接: 是否將為修改的文件存儲為之前版本的硬鏈接.
名字 實現 壓縮存儲 加密存儲 增量傳輸 加密傳輸 文件系統元數據 易訪問 可恢復 處理重命名 硬鏈接 命令行 其他界面 證書 其它平台 維護 特性
Back In Time backintimeAUR Python, rsync, diff rsync rsync rsync Yes [37][失效鏈接 2020-08-06 ⓘ] Qt GPLv2
DAR (Disk ARchive) darAUR C++ special archive format ? ? ? ? No [38] darguiAUR GPL FreeBSD, NetBSD, Windows, macOS
Link-Backup[失效鏈接 2022-09-23 ⓘ] link-backupAUR Python 2 ? SSH ? ? No [39][失效鏈接 2022-09-23 ⓘ] MIT 把它自己複製到服務器.
rdup rdupAUR C tar.gz gpg, blowfish and others ? ? ? ? GPLv3 一套命令行工具.
rsnapshot rsnapshot rsync ? ? ? ? Yes [40] GPLv2 Win32 No [41]
TimeShift timeshiftAUR rsync rsync rsync ? ? ? ? GTK GPLv3 專門為完整系統備份到專用設備而設計的.

面向網絡[編輯 | 編輯原始碼]

這篇文章的某些內容需要擴充。

原因: 你可以填寫空的地方. 比如加密傳輸 列: 只能網絡傳輸是什麼意思? (在 Talk:同步和備份程序 中討論)

這些程序被設計為旨在集中鏈接到網絡的多台計算機的備份, 通過一種服務器-客戶端模型. 通常,它們部署更複雜, 與 #單機器 解決方案相比.

特殊說明:

  • 控制方向: 拉取: 服務器登錄客戶端. 推動: 客戶端啟動會話.
  • 增量類型: 通過刪除重複數據來減少已用空間的策略 (i.e., 除了壓縮之外).
    • 基於文件: 如果文件被修改, 整個新版本將存在每個快照中.
      • 硬鏈接: 未修改的文件是否被存為之前版本的硬鏈接.
    • 基於塊: 只有文件修改過的 部分 被存在每個快照中.
名字 實現 控制方向 壓縮存儲 加密存儲 增量傳輸 加密傳輸 文件系統元數據 易訪問 可恢復 處理重命名 增量種類 命令行 其它界面 證書 其它平台 維護 特性
BackupPC backuppc Perl Pull ? 基於文件, 硬鏈接 [42] Web GPLv2 任何平台 (不需要客戶端) 相同或不同客戶端的備份中相同文件僅存儲一次.
Bacula bacula* in AUR C++ Pull ? ? ? ? 基於文件 [43] GUI, Web AGPLv3 Windows, macOS
burp burp-backupAUR librsync Push ? ? 基於塊 [44] burp-ui AGPLv3 Windows, macOS
SafeKeep safekeepAUR rdiff-backup Pull ? ? ? ? ? 基於塊 [45] GPL LVM 和數據庫集成以創建一致的備份. 帶寬限制.
Snebu snebuAUR C Push or Pull ? ? ? ? ? 基於文件 [46] GPLv3 ? 支持任意保留計劃.
Synbak synbak Multitool wrapper ? ? ? ? ? Web GPLv3 統一許多備份方法.
UrBackup urbackup* in AUR C++ Pull Internet transfers only 基於文件,硬鏈接和符號鏈接[47]/基於塊的 CoW-Snapshots[48] 是 (client) GUI, Web AGPLv3+ Windows, macOS 相同或不同客戶端的相同文件的備份只存儲一次. 在文件系統快照裡集成了 LVM, dattobd 和 btrfs .

版本控制系統[編輯 | 編輯原始碼]

雖然 版本控制系統大多數時候用於源代碼, 但它們可以跟蹤目錄裡的任何文件.

查閱 List of applications/Utilities#Version control systemsdotfiles.

也可查閱[編輯 | 編輯原始碼]