用 rsync 加 SSH 做零成本伺服器異地備份:一步步教你設定
好多中小企或者個人站長,成日都忽略咗「異地備份」呢樣嘢。部機一壞、畀人勒索加密,或者機房燒咗,你啲數據就真係渣都冇得剩。但係市面上嘅備份軟件又貴,cloud backup 又要月費,唔通真係要等到出事先知死?
其實你唔使使錢買貴嘢,Linux 上面一個免費又古老嘅工具 `rsync`,配搭 SSH 加密通道,已經可以做到好好嘅異地備份。今次就同大家拆解點樣由零開始,搭一套可靠嘅 rsync + SSH 備份方案。
點解要用 rsync 而唔係 cp 或者 scp?
好多人備份就係直接 `cp -r` 或者 `scp` 成個 directory 抄過去,但咁樣有兩個大問題:
1. 每次都抄晒全部檔案,浪費時間同頻寬
2. 冇得做增量,改咗一個檔案都要成個 folder 重抄
`rsync` 嘅精髓就係「增量同步」——佢會比較兩邊檔案嘅 size 同 modification time,淨係傳送有改動嘅部分,仲可以用 `–delete` 參數確保兩邊完全一致。對住幾百 GB 嘅數據,呢個差距係天同地。
第一步:確認兩邊機都有 rsync 同 SSH
大部分 Linux distribution 預設都裝咗。可以用下面指令 check:
rsync --version | head -1
ssh -V 2>&1 | head -1
如果冇裝,Debian/Ubuntu 用:
sudo apt update && sudo apt install rsync openssh-server -y
CentOS/RHEL 系就用:
sudo yum install rsync openssh-server -y
第二步:設定 SSH Key 免密碼登入
要自動化備份,就唔可以每次都手打密碼。喺來源機(即係你要備份嗰部)生成 SSH key:
ssh-keygen -t ed25519 -C "backup-user" -f ~/.ssh/backup_key
跟住將 public key 抄去目標備份機:
ssh-copy-id -i ~/.ssh/backup_key.pub backup@目標機IP
抄完之後測試下可唔可以免密碼登入:
ssh -i ~/.ssh/backup_key backup@目標機IP "echo 成功連線"
如果成功出到「成功連線」四個字,就代表 SSH Key 設定完成。
第三步:用 rsync 做第一次完整備份
假設你要備份 `/var/www` 同 `/etc` 兩個目錄去備份機嘅 `/backup/server1/`。基本指令係咁:
rsync -avz --delete \
-e "ssh -i ~/.ssh/backup_key" \
/var/www/ /etc/ \
backup@目標機IP:/backup/server1/
逐個參數解釋下:
– `-a`:archive 模式,保留權限、時間戳、symlink 等
– `-v`:verbose,顯示傳送過程
– `-z`:傳送時壓縮,慳頻寬
– `–delete`:目標端有但來源端冇嘅檔案會刪除,確保完全一致
– `-e “ssh …”`:指定用邊條 SSH key 連線
⚠️ 注意:`–delete` 好危險,第一次用嗰陣建議先唔加,確認冇問題先加返。
第四步:用 cron 自動化每日備份
寫一個備份 script,放喺 `/usr/local/bin/backup.sh`:
#!/bin/bash
LOGFILE="/var/log/backup.log"
echo "===== $(date) 開始備份 =====" >> $LOGFILE
rsync -avz --delete \
-e "ssh -i /home/backup/.ssh/backup_key" \
/var/www/ /etc/ \
backup@目標機IP:/backup/server1/ >> $LOGFILE 2>&1
if [ $? -eq 0 ]; then
echo "備份成功" >> $LOGFILE
else
echo "備份失敗!請檢查" >> $LOGFILE
fi
然後用 `crontab -e` 加一行,每日凌晨三點跑:
0 3 * * * /usr/local/bin/backup.sh
第五步:驗證備份真係可以還原
備份嘅意義唔係「抄咗」,而係「出事嗰陣還原得到」。定期做一次還原測試,例如還原一個檔案:
rsync -avz -e "ssh -i ~/.ssh/backup_key" \
backup@目標機IP:/backup/server1/var/www/config.php /tmp/restore_test/
確認個檔案完整,你先至叫做真正「有備份」。
總結
rsync + SSH 係一套零成本、可靠、經得起時間考驗嘅異地備份方案。佢冇靚仔 UI,但勝在穩定、透明、可控。只要記住三件事:用 SSH Key 加密、用 cron 自動化、定期測試還原,你嘅數據就唔會再係「聽天由命」。
下次有機會,再同大家講下點樣配 `rsync –link-dest` 做多版本快照備份,連誤刪檔案都可以救返。
#cloud #自動化 #技術分享 #Linux #IT教學




