Duplicati

Duplicati是一套备份客戶端，可在雲端儲存服務與遠端檔案伺服器上安全儲存本機檔案的加密、增量、壓縮過的在线备份。Duplicati不僅支援多種線上備份服務（如OneDrive、Amazon S3、Backblaze、Rackspace雲端檔案、Tahoe LAFS以及Google雲端硬碟），同時也可用於任何支援SSH/SFTP、WebDAV或FTP的伺服器。

Duplicati使用了如rdiff、zip、AESCrypt與GnuPG等標準元件。即使Duplicati無法使用，也可以透過組合這些工具來還原使用者的備份。Duplicati是以GNU宽通用公共许可证 (LGPL)發布的自由软件。

技術
Duplicati主要以C♯編寫而成，並完全以通用語言運行庫實作，使其可以跨平台。因為使用了.NET Framework或Mono，因此在32位元與64位元的Windows、macOS與Linux上均可執行。

Duplicati同時有精靈風格的图形用户界面，以及用於无头计算机的命令行界面。兩種介面都使用了同一個核心，因此有相同的功能。命令列的版本類似於Duplicity的介面。

Duplicati有一些通常僅有商業系統中才有的獨特功能，例如備份檔案的遠端驗證、磁碟快照、開啟檔案的備份等。磁碟快照在Windows上是使用磁碟區陰影複製服務執行，而在Linux上則是使用邏輯捲軸管理。

歷史
原始的Duplicati專案於2008年6月啟動，一開始的目標是為Duplicity製作图形用户界面。這也包含了將Duplicity的程式碼移植到Windows上，但在2008年9月時被刪除，並開始完全重寫。重寫後仍包含Duplicity中的所有子處理程序，如rdiff與ftp等。重寫後的初始版本於2009年釋出。

到了2012年，開始了Duplicati 2的工作。其包含了可以進行高效率、增量且連續式的備份之新儲存引擎。新的使用者介面是以網頁為基礎的，因此可以在伺服器或NAS等無頭系統上安裝Duplicati 2。由於其網頁介面為响应式网页设计，因此可以在行動裝置上使用。

實作
Duplicati的图形用户界面與命令行界面都會呼叫一個稱為Main的元件，作為所有支援動作的綁紮點。截至2021年8月為止，加密、壓縮與儲存元件被視為子元件，並於執行時載入，這讓第三方開發者不需要存取原始碼或是修改Duplicati就可以將子元件注入到Duplicati中。授權條款類型也足夠寬鬆，讓Duplicati可與封閉原始碼的儲存空間提供者一起轉散發。Duplicati被設計為盡可能與儲存提供者無關，這代表了任何支援通用指令(GET、PUT、LIST、DELETE)的儲存媒介都可以與Duplicati一起使用。

Duplicati所使用的Duplicity模型非常依賴於系統元件，如librdiff與TcFTP等。因為Duplicati是跨平台軟體，而且這些元件不太可能在所有平台上都可以使用，因此Duplicati重新實作了這些元件。其中較值得注意的是，Duplicati包含了rdiff與AESCrypt實作，因此可在任何支援通用語言運行庫的系統上運作。

Duplicati 1的限制
Duplicati 1.x中的图形用户界面前端主要用於連結了顯示器的單一台電腦。不過其也可以安裝為Windows服务或Linux守护进程，然後從啟動Duplicati服務設定Duplicati系統匣。Duplicati 2已解決此限制，其有網頁介面並可用於無頭系統。

Duplicati 1.x列出檔案時非常緩慢，因此瀏覽檔案樹以進行復原可能非常耗時。

因為Duplicati是製作增量備份，只要中間有一個增量備份損毀，直到下一次完整備份前的增量備份都會無法使用。Duplicati 2則會定期測試備份以儘早偵測到損毀的檔案。

Duplicati 1.x僅儲存檔案修改日期，而不會儲存如權限與屬性等的詮釋資料。Duplicati 2中已解決此問題。

參見

參考資料

外部連結 
 

2008年软件
自由备份软件
用C♯编程的自由软件