你的 WordPress 網站有保險嗎?終極自動備份與還原策略,從 UpdraftPlus 到 WP-CLI 全解析
嗨,我是浪花科技的資深工程師 Eric。寫程式這麼多年,遇過最驚悚的不是半夜被 call 醒解 bug,而是客戶一臉驚恐地問:「我的網站…怎麼不見了?」這時候,如果你沒有一套可靠的 WordPress 自動備份與還原策略,那情況就真的比恐怖片還恐怖了。
很多站長以為網站上線就沒事了,但伺服器會故障、外掛更新會衝突、人為操作會失誤,更別提無孔不入的駭客攻擊。你的網站就像一棟房子,而備份就是這棟房子的「火災保險」。平時感覺用不到,一旦出事,它就是你唯一的救命稻草。今天,我就以一個老工程師的囉嗦,帶你從策略思維到實戰工具,徹底搞懂 WordPress 的備份與還原,讓你從此高枕無憂。
為什麼你需要的是「策略」,而不只是「一個備份檔」?
在我們深入探討工具之前,有個觀念我必須先矯正一下:備份不是一個動作,而是一套完整的「策略」。很多人以為裝個外掛、點個「立即備份」就完事了,這其實非常危險。一個好的策略,至少要回答兩個核心問題:
- RPO (Recovery Point Objective – 復原點目標):你能容忍損失「多久」的資料?如果你的網站是每天更新數十篇文章的新聞站,那可能只能容忍幾小時的資料損失;如果是一個更新頻率不高的企業形象網站,或許一週的資料損失是可以接受的。RPO 決定了你的「備份頻率」。
- RTO (Recovery Time Objective – 復原時間目標):你的網站可以「離線多久」?對電商網站來說,每分鐘的離線都意味著金錢損失,RTO 可能要以分鐘計算。這決定了你的「還原流程效率」與「備份檔存放位置」。
搞懂這兩個觀念,你才能制定出真正適合你網站的備份計畫,而不是盲目跟從。別忘了,備份的最終目的是「成功還原」,一個無法順利還原的備份檔,基本上就跟廢物沒兩樣。
WordPress 備份的核心:到底要備份什麼?
囉嗦完觀念,我們來談談技術細節。一個完整的 WordPress 網站主要由兩大部分組成,缺一不可:
1. 檔案 (The Body)
這包含了你網站所有的「骨架」和「血肉」。最重要的莫過於 wp-content 這個資料夾,因為它包含了:
/plugins/:你安裝的所有外掛。/themes/:你安裝的所有佈景主題。/uploads/:你上傳的所有圖片、文件和媒體檔案。這通常是最大也最重要的部分。
此外,根目錄的 wp-config.php 檔案也極其重要,它儲存了你資料庫的連線資訊,絕對不能漏掉。至於 WordPress 核心檔案(wp-admin, wp-includes),雖然也能備份,但因為可以從官網重新下載,所以重要性相對較低。
2. 資料庫 (The Brain)
如果說檔案是身體,那資料庫就是大腦。它儲存了你網站所有的「記憶」和「智慧」,包含:
- 文章、頁面、留言等所有內容。
- 使用者帳號、密碼(已加密)。
- 網站設定、外掛和佈景主題的設定值。
- WooCommerce 的商品、訂單、客戶資料等。
沒有資料庫,你的網站就只剩下一個空殼。因此,資料庫的備份絕對是重中之重。
實戰演練:兩大主流 WordPress 自動備份策略
了解了備份的「Why」和「What」,接下來就是「How」。我會介紹兩種主流的方法:適合所有人的 GUI 外掛,以及適合進階使用者與開發者的指令工具。
策略一:UpdraftPlus 外掛 – 簡單、可靠的全民英雄
對於大多數的 WordPress 站長,尤其是非技術背景的朋友,UpdraftPlus 絕對是你的首選。它的免費版功能就非常強大,設定起來也相當直覺。
為什麼推薦 UpdraftPlus?
- 設定簡單:全圖形化介面,點幾下滑鼠就能完成設定。
- 自動排程:可以設定每小時、每天、每週、每月自動備份。
- 遠端儲存:這點超級重要!它可以將備份檔自動上傳到 Google Drive, Dropbox, Amazon S3 等雲端空間,避免備份檔和網站主機同歸於盡。
- 一鍵還原:在需要的時候,可以直接從 WordPress 後台還原備份,非常方便。
工程師的設定建議:
- 檔案備份排程:對於大部分網站,設定「每週」備份一次檔案就足夠了,除非你每天上傳大量圖片。
- 資料庫備份排程:這取決於你的 RPO。如果是部落格或電商網站,強烈建議設定為「每日」備份。
- 保留備份數量:不要只保留一份最新的!我通常會建議至少保留 3-4 份,以防最新的備份檔剛好在你網站出問題後才產生,導致你還原到一個壞掉的版本。
- 務必設定遠端儲存:這是保險中的保險。我個人偏好 Google Drive,設定簡單,空間也夠用。
我的小囉嗦:設定完 UpdraftPlus 後,千萬不要就放著不管了。請至少一個月檢查一次,確保備份任務都有成功執行,並且「實際下載」一個備份檔看看是否能正常解壓縮。信任,但要驗證 (Trust, but verify)!
策略二:WP-CLI 指令 – 精準、高效的專家之選
如果你是開發者、系統管理員,或者你管理的是一台 VPS、獨立主機,那麼 WP-CLI (WordPress Command-Line Interface) 絕對是你的神兵利器。它能讓你透過指令碼來完成所有 WordPress 後台操作,包含備份。
為什麼要用 WP-CLI?
- 資源消耗低:相比於透過 PHP 執行的外掛,直接在伺服器執行的 WP-CLI 對系統資源的消耗更小。
- 極致自動化:可以結合 Linux 的 Cron Job(定時任務),打造出完全客製化、無需 WordPress 介入的自動備份流程。
- 速度快、穩定:對於大型網站,用外掛備份有時會因為 PHP 執行超時而失敗,WP-CLI 則沒有這個問題。
用 WP-CLI 打造自動備份腳本
你可以寫一個簡單的 Shell Script,然後讓伺服器每天自動執行它。這是一個基礎範例:
#!/bin/bash
# 設定變數
BACKUP_DIR="/path/to/your/backup/folder"
SITE_PATH="/var/www/html/your-site"
DATE=$(date +"%Y-%m-%d-%H%M%S")
DB_FILE="$BACKUP_DIR/db-$DATE.sql"
FILES_FILE="$BACKUP_DIR/files-$DATE.tar.gz"
# 確保備份目錄存在
mkdir -p $BACKUP_DIR
# 進入網站根目錄
cd $SITE_PATH
# 使用 WP-CLI 匯出資料庫
wp db export $DB_FILE --allow-root
# 壓縮 wp-content 資料夾
# --exclude 可以用來排除不必要的檔案,例如快取
tar --exclude='cache' -czf $FILES_FILE ./wp-content
# (可選) 刪除超過 7 天的舊備份
find $BACKUP_DIR/* -mtime +7 -exec rm {} \;
echo "Backup for $DATE completed."
把這段程式碼存成 backup.sh,給予執行權限 (chmod +x backup.sh),然後設定 Cron Job 每天凌晨執行,你就擁有了一套超級穩定的自動備份系統。當然,你還可以加上 rclone 或 s3-cli 指令,將備份檔自動同步到雲端空間。
我的小囉嗦:用指令介面看起來很硬核,但它給你的控制權和穩定性是無可取代的。一旦你習慣了這種「讓伺服器為你工作」的模式,你可能就再也回不去滑鼠點點點的世界了。這就是自動化的魅力。
災難復原計畫:光有備份檔是不夠的!
我必須再三強調:沒有演練過的還原計畫,等於沒有計畫。當災難真的發生時,你會處於高壓狀態,很容易出錯。因此,平時就該找機會在一個測試環境(Staging Site)上演練還原流程。
手動還原的標準流程:
- 清空或準備環境:在伺服器上準備一個乾淨的目錄和資料庫。
- 還原檔案:將你的檔案備份(例如
files-xxxx.tar.gz)解壓縮到網站根目錄。 - 還原資料庫:透過 phpMyAdmin 或指令 (
mysql -u [user] -p [database] < db-xxxx.sql) 將資料庫備份檔匯入。 - 檢查
wp-config.php:確認裡面的資料庫名稱、使用者、密碼都設定正確。 - 登入後台並儲存固定網址:登入 WordPress 後台,到「設定」>「固定網址」,直接點擊「儲存設定」,這個動作會重建你的
.htaccess檔案,解決 404 問題。 - 全面檢查:清除所有快取,然後仔細檢查網站前後台功能是否都正常。
這個流程你至少要走過一次,把每個步驟都記錄下來,未來才能臨危不亂。
結論:讓備份成為你最安心的後盾
建立一套 WordPress 自動備份與還原策略,就像是為你的數位資產買了一份頂級保險。無論你選擇簡單方便的 UpdraftPlus,還是靈活高效的 WP-CLI,重點是「開始行動」並且「持續維護」。
不要等到網站出事了才來後悔。花一個下午的時間,把你的備份策略建立起來,定期檢查,並進行一次還原演練。這份投入,將會在未來的某個關鍵時刻,為你省下無數的時間、金錢,以及心力。
延伸閱讀
- 網站睡死你照睡!WordPress 自動備份與還原終極懶人包 (UpdraftPlus + WP-CLI 實戰)
- 終結滑鼠手!資深工程師的 WP-CLI 神兵利器,讓你的 WordPress 管理效率原地起飛!
- 網站半夜被黑?別怕!資深工程師的 WordPress 終極安全指南,從預防到災難復原全攻略
如果你對於建立複雜的備份還原流程、或是需要更進階的災難復原規劃感到頭痛,浪花科技的團隊擁有豐富的實戰經驗,能為你的網站量身打造固若金湯的防護策略。歡迎點擊這裡,填寫表單與我們聯繫,讓專業的我們成為你最可靠的技術後盾。
常見問題 (FAQ)
Q1: 我的 WordPress 網站備份頻率應該設定多久一次?
這完全取決於你網站內容的更新頻率。一個簡單的原則是:思考「你能接受損失多久的資料?」如果你的網站是每天發布新文章或有新訂單的電商網站,建議「每日」備份資料庫。如果是一週才更新一次內容的形象網站,那「每週」備份一次即可。檔案(特別是 uploads 資料夾)的備份頻率可以稍低,例如每週一次,因為它變動相對較小。
Q2: 備份檔應該存在哪裡最安全?
千萬不要只存在網站主機上!這是最危險的做法,因為如果主機硬碟損壞或整個帳號被駭,你的網站和備份會一起消失。最佳實踐是遵循「3-2-1 備份原則」:至少有三份備份、儲存在兩種不同的媒介上、其中至少一份在異地(Off-site)。最簡單的實踐方式就是使用 UpdraftPlus 等外掛,將備份檔自動上傳到 Google Drive、Dropbox 或 Amazon S3 等第三方雲端儲存空間。
Q3: 我的主機商已經有提供每日備份了,我還需要自己另外備份嗎?
絕對需要!主機商提供的備份是一個很好的第一道防線,但你不應該完全依賴它。原因有幾點:1. 你無法完全控制備份的時間點和頻率。2. 還原流程可能很繁瑣,甚至需要付費。3. 如果主機商本身出問題,你的備份也可能受影響。4. 最重要的是,擁有自己獨立、可隨時存取的備份,能讓你掌握完全的主控權,在任何情況下都能快速恢復網站,甚至輕鬆地將網站搬遷到其他主機。






