跳到主內容

Duplicati 備份系統

  BUBU 之前看了節省哥的文章剛好有看到這一套開源等級檔案式備份系統 Duplicati 之前因為一直都沒有時間可以測試,剛好公司內部有這樣子需求,因之前都是自己去參考網路的上的備份方式來修改腳本。

運行環境


  環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式

  • 系統環境: Debian 10、11
  • Web 服務: Nginx 1.21.7

安裝過程


  因為這一套是用 C# 語言去寫的所以需要有 .net 的環境才能正常運行,那 Linux 如果想要這樣子的環境需要另外安裝套件 Mono 才能正常運行這一套備份系統。

安裝 Mono 套件

  • 安裝認證 key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
  • 新增加來源庫
echo "deb http://download.mono-project.com/repo/debian buster main" | sudo tee /etc/apt/sources.list.d/mono-official.list
  • 更新系統
apt update
  • 安裝 mono
apt install mono-devel
安裝 Duplicati

  • 安裝必要套件
apt install apt-transport-https nano git-core software-properties-common dirmngr -y
  • 下載安裝包 官方載點 看是什麼系統選擇安裝檔
wget https://updates.duplicati.com/beta/duplicati_2.0.6.3-1_all.deb
  • 安裝 Duplicati 服務
apt install ./duplicati_2.0.6.3-1_all.deb -y
  • 修改 vim /etc/default/duplicati (如果連線不到可能是這一段沒新增到)
# Defaults for duplicati initscript
# sourced by /etc/init.d/duplicati
# installed at /etc/default/duplicati by the maintainer scripts

#
# This is a POSIX shell fragment
#

# Additional options that are passed to the Daemon.
# DAEMON_OPTS後面沒有值,需要手動給他值才能正常連線
DAEMON_OPTS="--webservice-interface=any --webservice-port=8200 --portable-mode"
  • 啟動服務
systemctl enable duplicati && systemctl start duplicati
  • 在用 http://站台ip:8200 就可以看到畫面了。

  • 登入會看這樣子的畫面,會詢問是是否要新增密碼

duplicati-01.png

  • 我們就先新增了備份

duplicati-02.png

  • 填入要備份的名稱及是否有要加密,因為備份起來是會是壓縮檔。

duplicati-03.png

  • 設定要備份的地方。

duplicati-04.png

  • 設定要備份的資料

duplicati-05.png

  • 設定備份排程

duplicati-06.png

  • 這裡需要設定保留備份數量

duplicati-07.png

Nginx 反代理

  如果不想要輸入 port 號可以用反代理的方式來連線。

  • 安裝 nginx
apt install nginx
  • 新增加 Duplicati 設定檔 vim /etc/nginx/conf.d/duplicati.conf
server {
  listen 80;
  server_name duplicati.example.com;

  access_log /var/log/nginx/duplicati_access.log;
  error_log /var/log/nginx/duplicati_error.log;
  location / {
     proxy_pass http://127.0.0.1:8200;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}
  • 啟動 nginx 服務
systemctl start nginx && systemctl enable nginx

電子郵件設定


  • 在設定頁面下有一個預設選項點選編輯文字內容
--accept-any-ssl-certificate=true
--send-mail-from= 寄件者名稱 <寄件者郵件>
--send-mail-subject=Duplicati %OPERATIONNAME% report for %backup-name%
--send-mail-to=收件者郵件
--send-mail-url=smtp://郵件伺服器:587/?starttls=when-available
--send-mail-body=%RESULT%
--send-mail-username=登入帳號
--send-mail-password=登入密碼
--send-mail-level=all

補充說明


備註





參考相關網頁