本章目的
簡單來說,就是一個自動備份的工具。
由於我平常有在管理一台 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)
2.新增防火牆規則
在控制台 -> 安全 -> 防火牆 -> 防火牆設定檔裡,添加新的防火牆規則,把連接埠 873(rsync), 22(ssh)和 2234(自訂)打開
3.設定路由器 通訊埠轉發(Port Forwarding)
如何你是和我一樣,把家裡的 NAS 放置在路由器後方,那便需要設定通訊埠轉發(Port Forwarding)
也是把連接埠 873(rsync), 22(ssh)和 2234(自訂)的流量從路由器轉到 NAS,要不然路由器會擋掉這些 port 的連線。
由於每個人用的路由器牌品不同,設定的步驟也不一樣,但方式都大同小異。以下是我的 ASUS 華碩路由器的設定時的截圖:
這樣把 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 就會自動備份~~