使用 rsync 備份到 Synology NAS 伺服器上

本章目的

ds920

簡單來說,就是一個自動備份的工具。

由於我平常有在管理一台 linux 的 VPS 伺服器並用來發佈文章的習慣(就是你現在正瀏覽的這個網站),然後剛好我又管理家裡另一台 Synology 的 NAS,家裡的 NAS 平常主要給自己還有家人用來備份手機裡的照片、音樂還有各類文件。然後我就思考著,能不能把 VPS 的內容全備份到 NAS 呢,然後就發現了 rsync 這個好用的工具。

rsync 不止能用在 linux 的 VPS 上,也能使用在自己平常的 MacBook 上,是一個可以替代 Time Machine 的備份方法

用法:

rsync -av 來源檔案 目標檔案

-a 參數: 全部。包含子目錄、同步元信息(比如修改時間、權限等) -v 參數: 在終端顯示輸出結果

具體例子:

rsync -av -e 'ssh -p 2234' source/ user@remote_host:/destination

-e 參數: 指定協議(默認為 ssh 22)

Synology NAS 開啟 rsync 功能

1.啟動 rsync 服務

方法相當簡單,在控制台 -> 檔案服務 -> rsync -> 勾選”啟動 rsync 服務” 便可

亦可像我一樣指定連接埠成 2234 (默認是 22)

2022-01-12_15-51

2.新增防火牆規則

在控制台 -> 安全 -> 防火牆 -> 防火牆設定檔裡,添加新的防火牆規則,把連接埠 873(rsync), 22(ssh)和 2234(自訂)打開

2022-01-12_15-54

3.設定路由器 通訊埠轉發(Port Forwarding)

如何你是和我一樣,把家裡的 NAS 放置在路由器後方,那便需要設定通訊埠轉發(Port Forwarding)

也是把連接埠 873(rsync), 22(ssh)和 2234(自訂)的流量從路由器轉到 NAS,要不然路由器會擋掉這些 port 的連線。

由於每個人用的路由器牌品不同,設定的步驟也不一樣,但方式都大同小異。以下是我的 ASUS 華碩路由器的設定時的截圖:

2022-01-12_15-58

這樣把 Synology NAS 的 rsync 設置好了~

如何使用 rsync

1.安裝 rsync

# Debian
$ sudo apt-get install rsync

# Red Hat
$ sudo yum install rsync

# Arch Linux
$ sudo pacman -S rsync

# Mac
$ sudo brew install rsync

2.使用 rsync

在使用上,有不同的參數和細節,具體可參考阮一峰的网络日志的 rsync 用法教程,而這邊我就只寫自己用的一句備份和一句還原指令

備份:

rsync -av -e 'ssh -p 2234' jekyll-TeXt-theme-* /usr/share/nginx/webpage username@my-nas-domain:~/ank.pw/rsync-backup/

還原:

rsync -aAPXv username@my-nas-domain:~/ank.pw/rsync-backup/ .

基於安全原因,我混淆了 port, username 和 domain

設置定時自動備份

使用 crontab

crontab -e

開啟編輯並加入:

0 0 * * * root rsync -av -e 'ssh -p 2234' jekyll-TeXt-theme-* /usr/share/nginx/webpage username@my-nas-domain:~/ank.pw/rsync-backup/

這樣就會每天凌零 00:00 就會自動備份~~

image