VPS 備份與快照指南

作者 ONIE 工程團隊 · 更新於 2026年11月12日 · 閱讀時間 1 分鐘

伺服器可能因為錯誤的更新、人為失誤、惡意程式或硬體問題而故障。完善的計畫會結合快照、備份與經過測試的還原流程。在 ONIE 上,胡志明市雲端伺服器支援快照與備份,你也可以加購 Block Storage 來存放資料。

快照與備份的差異

快照備份
定義某一時間點的磁碟狀態副本伺服器或其資料的獨立副本
適用情境升級或修改設定前的快速還原復原遺失、損毀或刪除的資料
保存位置靠近原始伺服器獨立的儲存空間
速度建立與還原都很快較慢,視資料大小而定

兩者都要用:風險較高的變更前建立快照,其餘資料則定期備份。

3-2-1 原則

重要資料至少保留 3 份副本,存放在 2 種不同類型的儲存媒介上,並且其中 1 份存放在異地。只在同一台伺服器上做快照是不夠的。

備份檔案

rsync 只會複製有變動的內容:

rsync -aH --delete /var/www/ backup@backup-host:/srv/backups/www/

restic 可將加密且去重複的備份存放到多個目標:

sudo apt install -y restic
restic -r sftp:backup@backup-host:/srv/restic init
restic -r sftp:backup@backup-host:/srv/restic backup /var/www /etc
restic -r sftp:backup@backup-host:/srv/restic forget --keep-daily 7 --keep-weekly 4 --prune

備份資料庫

使用傾印(dump)來複製資料庫,而不是直接複製正在運作中的資料檔:

mysqldump --single-transaction --routines -u root wordpress | gzip > /var/backups/wordpress-$(date +%F).sql.gz

若使用 PostgreSQL,請改用 pg_dump。

自動化

使用 cron 或 systemd timer 執行備份,並設定保留政策,自動刪除過舊的副本:

sudo crontab -e
# every day at 02:30
30 2 * * * /usr/local/bin/backup.sh

測試還原

從未還原過的備份只能算是猜測。每月一次,把備份還原到備用伺服器,確認網站與資料都能正常運作。並將步驟寫成文件,讓團隊中的任何人都能執行。

大型變更前

先建立快照,進行變更,測試後再確認無誤即可刪除快照。這個做法與安全的 SSH 設定相輔相成,在升級 WordPress 網站時也很有幫助。

常見問題

How often should I back up?

Daily is common for sites and databases that change often. Back up more often if losing a day of data would hurt.

Are snapshots billed?

Snapshots and backups are billed by the space they use. See the current rates on the pricing page of the service.

Where should I store backups?

Not only on the same server. Use another location or provider so one failure cannot remove every copy.

參考資料與延伸閱讀

更多 VPS 指南