用 rsync 做 Linux 伺服器備份教學

# 用 rsync 做 Linux 伺服器備份:一步步學識增量同步 好多人都話「備份好重要」,但係真正識得落手做嘅人就唔多。今日我哋就嚟學一個 Linux 世界入面最經典、最可靠嘅備份工具——**rsync**。佢唔單止可以同步檔案,仲識得做**增量備份**,即係每次只係傳送有改動過嘅檔案,慳時間又慳 bandwidth。 ## 乜嘢係 rsync? rsync(Remote Sync)係一個開源...

用 rsync 做 Linux 伺服器備份教學 - 文章重點速覽 infographic

# 用 rsync 做 Linux 伺服器備份:一步步學識增量同步

好多人都話「備份好重要」,但係真正識得落手做嘅人就唔多。今日我哋就嚟學一個 Linux 世界入面最經典、最可靠嘅備份工具——**rsync**。佢唔單止可以同步檔案,仲識得做**增量備份**,即係每次只係傳送有改動過嘅檔案,慳時間又慳 bandwidth。

## 乜嘢係 rsync?

rsync(Remote Sync)係一個開源嘅檔案同步工具,由 Andrew Tridgell 開發。佢最犀利嘅地方係用一個「delta 演算法」,只會同步檔案之間有差異嘅部分,唔會每次都成個檔案重新傳。對於大型檔案或者成個資料夾嚟講,呢個可以慳到九成以上嘅傳輸量。

## 點樣安裝 rsync?

大部分 Linux distribution 預設已經裝咗 rsync,你可以用下面嘅指令確認:

rsync --version

如果未裝,用你嘅套件管理工具裝:

# Ubuntu / Debian
sudo apt update && sudo apt install rsync -y

# CentOS / RHEL / Fedora
sudo yum install rsync -y

## 基本同步指令

最簡單嘅同步就係將一個資料夾複製去另一個地方:

rsync -av /來源資料夾/ /目的地資料夾/

呢度嘅參數解釋:

– `-a`(archive):保留權限、時間戳、擁有者等 metadata,等同 `-rlptgoD` 嘅組合
– `-v`(verbose):顯示詳細過程,等你知道佢做緊乜

**重點提醒:** 來源路徑後面有冇斜線 `/` 係好大分別!`/來源資料夾/` 會複製「資料夾入面嘅內容」,而 `/來源資料夾` 就會複製「成個資料夾」。

## 遠端備份去另一部機

最常見嘅用法就係將本地資料備份去遠端伺服器:

rsync -avz -e ssh /本地資料夾/ user@192.168.1.100:/遠端路徑/

新增嘅參數:

– `-z`:傳送時壓縮,慳 bandwidth
– `-e ssh`:指定用 SSH 加密傳輸,安全過傳統 rsh

## 增量備份嘅核心:只傳改動過嘅嘢

rsync 預設就係做增量同步,但係如果你想保留「每日快照」,可以配合 `–link-dest` 做 hard link 快照,慳硬碟空間:

rsync -av --link-dest=/備份/昨日/ /來源/ /備份/今日/

咁樣做,冇改動過嘅檔案會用 hard link 指向昨日嘅版本,唔會重複佔用空間,改動過嘅先會真正寫入新檔案。呢個方法就係好多備份系統(例如 Time Machine 嘅概念)嘅背後原理。

## 常用進階參數

# 模擬執行,先睇下會做啲乜(唔會真係鬱檔案)
rsync -avn /來源/ /目的地/

# 同步時刪除目的地多餘嘅檔案(等兩邊完全一致)
rsync -av --delete /來源/ /目的地/

# 排除某啲檔案或資料夾
rsync -av --exclude='*.tmp' --exclude='/cache/' /來源/ /目的地/

# 限速,避免影響其他服務
rsync -av --bwlimit=1000 /來源/ /目的地/   # 單位係 KB/s

## 實戰範例:每日自動備份網站資料

假設你想每日凌晨自動備份 `/var/www` 去一部 NAS,可以寫一個 script 再放入 crontab:

#!/bin/bash
# 每日備份網站
rsync -avz --delete \
  --exclude='/var/www/site/cache/' \
  -e "ssh -p 2222" \
  /var/www/ backup@nas.local:/volume1/backup/www/

然後用 crontab 排程:

crontab -e
# 加入呢一行:每日凌晨 2 點執行
0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1

## 總結

rsync 係一個簡單但係極之強大嘅備份工具,掌握咗佢之後,你唔使再成日擔心「個 server 死咗啲資料點算」。由基本同步到遠端加密備份,再到 hard link 快照,一步一步嚟,你就會發現備份原來可以咁簡單。

🔗 參考資料:NVD NIST 漏洞資料庫

下次我會再講多啲進階玩法,例如點樣用 rsync 配合 systemd timer 取代 crontab,等我哋將備份流程做得更加穩陣。