網站睡死你照睡!WordPress 自動備份與還原終極懶人包 (UpdraftPlus + WP-CLI 實戰)

2025/09/15 | 網站安全與防護

網站睡死你照睡!WordPress 自動備份與還原終極懶人包 (UpdraftPlus + WP-CLI 實戰)

嗨,我是浪花科技的資深工程師 Eric。在工程師的世界裡,我們有句玩笑話:「世界上只有兩種人,一種是做備份的人,另一種是還沒遇到災難的人。」這句話雖然聽起來有點嚇人,但在網站維運的殘酷戰場上,這可是血淋淋的真理。

我真的看過太多客戶,因為一次錯誤的更新、一次外掛衝突,甚至是惡意的駭客攻擊,導致整個網站心血付諸東流。當他們焦急地來找我們時,我問的第一個問題永遠是:「請問有最近的備份嗎?」而最讓我心頭一涼的答案,就是「好像…沒有…」

今天,我就是要來終結這個惡夢。這篇文章不是要跟你談什麼高深的理論,而是要給你兩套「設定好就忘了它」的 WordPress 自動備份與還原策略。一套是適合所有人的圖形化介面神器 UpdraftPlus,另一套則是我們工程師愛用的命令行工具 WP-CLI。不管你是網站主還是開發者,跟著我走,讓你從此高枕無憂,就算網站半夜掛了,你也能安心睡到天亮。

為什麼「手動備份」是你網站最大的敵人?

我知道,你可能覺得:「我偶爾會記得去主機後台打包一下檔案跟資料庫啊!」聽起來很美好,但相信我,依賴「手動」跟「記憶」來做備份,是災難的開始。原因很簡單:

  • 惰性是天性: 一開始你可能很勤勞,每週備份一次。一個月後,變成一個月一次。三個月後,你可能就忘了上次備份是什麼時候了。災難總是在你最鬆懈的時候來臨。
  • 容易出錯: 手動打包檔案,你有沒有漏掉哪個資料夾?匯出資料庫時,有沒有選錯選項?過程中任何一個小失誤,都可能讓你的備份檔變成一堆沒用的垃圾。
  • 不夠即時: 假設你一個月備份一次,但你的網站在第 29 天掛了。這意味著你將遺失整整一個月的訂單、文章或使用者資料。這個損失,你承受得起嗎?

所以,別再掙扎了。唯一的正解就是「自動化」。讓機器去為你做這些重複、繁瑣但至關重要的工作。

WordPress 備份的兩大核心:檔案與資料庫

在我們開始實作之前,先花個一分鐘搞懂我們要備份什麼。一個完整的 WordPress 網站備份,包含兩個部分,缺一不可:

  1. 網站檔案 (Files): 這就像網站的「骨架與皮肉」。它包含了:
    • WordPress 核心檔案: 驅動網站運作的程式。
    • 佈景主題 (Themes): 決定你網站的外觀。
    • 外掛 (Plugins): 賦予你網站各種功能的擴充。
    • 媒體庫 (Uploads): 你上傳的所有圖片、文件和影片,這通常是最重要也最肥大的部分!
  2. 資料庫 (Database): 這就是網站的「靈魂與記憶」。它用資料表的形式儲存了:
    • 文章、頁面、商品等所有內容。
    • 使用者帳號、密碼(已加密)和權限。
    • 網站設定、外掛設定、佈景主題設定等。

少了檔案,你的網站只剩下一堆數據;少了資料庫,你的網站就只剩下一個空殼。所以,我們的備份策略必須同時涵蓋這兩者。

策略一:圖形化介面的王者 – UpdraftPlus 實戰教學

如果你對命令行感到恐懼,或者你只是想用最簡單快速的方式搞定備份,那麼 UpdraftPlus 就是你的救星。它是市面上最受歡迎的 WordPress 備份外掛之一,免費版的功能就已經非常強大。

為什麼我推薦 UpdraftPlus?

囉嗦一下,市面上備份外掛這麼多,為什麼我偏愛 UpdraftPlus?

  • 穩定可靠: 超過三百萬個網站都在用,經過了大量實戰驗證。
  • 設定簡單: 全圖形化介面,照著提示點一點就能完成設定。
  • 支援多種雲端儲存: 免費版就支援 Google Drive, Dropbox, Amazon S3, FTP 等多種主流雲端空間,讓你輕鬆實現「異地備份」。
  • 還原超簡單: 網站出事時,只要點幾下就能從備份檔還原,簡直是手殘黨的福音。

安裝與設定 UpdraftPlus 自動備份

廢話不多說,我們直接動手做。跟著以下步驟,大概 10 分鐘就能搞定:

  1. 安裝外掛: 進入 WordPress 後台 > 外掛 > 安裝外掛,搜尋「UpdraftPlus」,安裝並啟用它。
  2. 進入設定頁面: 啟用後,從上方工具列或左側選單的「設定」>「UpdraftPlus Backups」進入主畫面。
  3. 設定備份排程: 切換到「設定 (Settings)」分頁。
    • 檔案備份排程 (Files backup schedule): 建議設定為「每週 (Weekly)」。
    • 資料庫備份排程 (Database backup schedule): 建議設定為「每日 (Daily)」,因為資料庫通常變動更頻繁。
    • 保留備份數量: 檔案和資料庫都建議至少保留 2-4 份,以防最新的備份檔有問題。
  4. 選擇遠端儲存空間: 這是最重要的一步!往下滑,選擇一個你常用的雲端服務,例如「Google Drive」。點擊圖示後,會出現授權設定。
  5. 授權與完成: 點擊「Sign in with Google」按鈕,它會引導你登入 Google 帳號並授權 UpdraftPlus 存取一個專屬的資料夾。完成授權後,再點擊頁面最下方的「儲存變更 (Save Changes)」。

恭喜你!你的 WordPress 網站現在已經擁有全自動、異地備份的超能力了。UpdraftPlus 會在背景默默地保護你的心血結晶。

一鍵還原:當災難發生時

設定好備份只是第一步,知道如何還原才是真功夫。當你的網站不幸出問題時(例如更新後出現死亡白畫面),別慌張:

  1. 如果後台還能登入,直接到 UpdraftPlus 的「備份 / 還原 (Backup / Restore)」分頁。
  2. 你會看到「現有備份 (Existing backups)」列表。找到你想還原的時間點,點擊藍色的「還原 (Restore)」按鈕。
  3. 勾選你想要還原的元件(通常是全部勾選:外掛、佈景主題、媒體庫、其他、資料庫),然後一直按下一步,UpdraftPlus 就會幫你把網站恢復到備份時的狀態。是不是簡單到不可思議?

策略二:工程師的瑞士刀 – WP-CLI 備份自動化

好了,如果你是個喜歡掌控一切、追求極致效率的開發者或進階使用者,那接下來的 WP-CLI 就是你的菜。WP-CLI 是 WordPress 的官方命令列工具,它讓我們可以透過終端機(Terminal)來管理 WordPress,完全不需要圖形介面。

什麼是 WP-CLI?為什麼要用它?

用 WP-CLI 備份有幾個無可取代的優點:

  • 速度快、資源消耗少: 它直接在伺服器層級運作,不需要載入 WordPress 的圖形介面,執行速度比外掛快得多,也更省主機資源。
  • 極致自動化: 可以寫成腳本(Script),再搭配伺服器的排程工具(Cron Job),可以打造出非常客製化且強大的自動化備份流程。
  • 管理多站點超方便: 如果你同時管理數十個網站,用 WP-CLI 寫個迴圈腳本,就能一次性備份所有網站,這可是圖形介面做不到的。

當然,缺點就是你需要有主機的 SSH 存取權限,並且要熟悉基本的 Linux 指令。

使用 WP-CLI 進行備份

假設你已經在你的主機上安裝好了 WP-CLI,備份網站其實就只是幾行指令的事。首先,透過 SSH 登入你的主機,並切換到 WordPress 網站的根目錄。

1. 備份資料庫:

wp db export database_backup_$(date +%Y-%m-%d).sql

這行指令會將整個資料庫匯出成一個 SQL 檔案,並且檔名會自動帶上當天的日期,方便識別。

2. 備份檔案:

我們通常只需要備份 `wp-content` 資料夾,因為這裡面包含了你所有的主題、外掛和上傳的媒體檔。WordPress 核心檔案可以隨時從官網下載。

tar -czf files_backup_$(date +%Y-%m-%d).tar.gz wp-content

這行指令會將 `wp-content` 資料夾壓縮成一個 `.tar.gz` 檔案,同樣檔名會帶上日期。

終極自動化:結合 Cron Job

手動敲指令還是不夠看,真正的精髓在於讓伺服器自動幫我們執行。我們可以寫一個簡單的 Shell Script,再讓 Cron Job 定期去跑它。

1. 建立備份腳本 `backup.sh`:

在你的家目錄(home directory)下建立一個檔案,例如 `backup.sh`,內容如下:

#!/bin/bash

# --- 設定變數 ---
WP_PATH="/var/www/html" # 你的 WordPress 網站路徑
BACKUP_PATH="/home/user/backups" # 你想存放備份檔的路徑
DATE=$(date +%Y-%m-%d_%H%M%S)

# --- 建立備份目錄 ---
mkdir -p $BACKUP_PATH

# --- 進入網站目錄 ---
cd $WP_PATH

# --- 備份資料庫 ---
wp db export $BACKUP_PATH/db_backup_$DATE.sql

# --- 備份檔案 ---
tar -czf $BACKUP_PATH/files_backup_$DATE.tar.gz wp-content

# --- 刪除超過 7 天的舊備份 ---
find $BACKUP_PATH/* -mtime +7 -delete

echo "Backup completed on $DATE"

這個腳本做了幾件事:備份資料庫、備份檔案、將備份檔放到指定目錄,並且會自動刪除 7 天前的舊備份,避免佔用硬碟空間。記得要給這個腳本執行的權限:`chmod +x backup.sh`。

2. 設定 Cron Job:

在終端機輸入 `crontab -e`,然後在檔案的最後加上一行:

0 2 * * * /home/user/backup.sh >/dev/null 2>&1

這一行的意思是:在每天凌晨 2:00,自動執行 `/home/user/backup.sh` 這個腳本。`>/dev/null 2>&1` 則是讓它在背景安靜地執行,不要產生任何輸出。

搞定!你現在擁有了一個工程師等級的全自動備份系統。

UpdraftPlus vs. WP-CLI:我該怎麼選?

看到這裡,你可能會有點選擇困難。別擔心,Eric 幫你整理一下:

  • 選擇 UpdraftPlus 的情境:
    • 你是網站主、行銷人員或設計師。
    • 你沒有主機的 SSH 權限。
    • 你偏好簡單直覺的圖形化操作。
    • 你想快速設定好備份到雲端的功能。
  • 選擇 WP-CLI 的情境:
    • 你是開發者或系統管理員。
    • 你有主機的 SSH 權限,且熟悉 Linux 指令。
    • 你追求極致的效能與客製化彈性。
    • 你需要同時管理多個 WordPress 網站。

我的建議是:如果你是初學者或非技術背景,直接用 UpdraftPlus 就對了,它能解決 99% 的需求。如果你是進階使用者,WP-CLI 的強大與彈性絕對值得你投入時間學習。

備份後的必做功課:驗證與異地存放

最後,也是最常被忽略的一點:一個未經驗證的備份,等於沒有備份。請務必做到以下兩點:

  1. 定期驗證: 每隔一段時間(例如每季),嘗試在你本地的開發環境或一個測試站上,用你的備份檔進行一次完整的還原演練。確保整個流程是通的,備份檔是有效的。
  2. 遵守 3-2-1 原則: 這是備份界的黃金法則。
    • **3** 份備份:一份正式上線的資料,外加兩份備份。
    • **2** 種不同媒介:例如存在主機硬碟,也存在雲端空間。
    • **1** 份在異地:這點非常重要!UpdraftPlus 備份到 Google Drive,或是你用 WP-CLI 腳本把備份檔同步到 Amazon S3,都是實現異地備份的好方法。這樣就算整個主機都毀了,你還有最後一道防線。

延伸閱讀

總結:把時間花在創造價值,而不是擔心災難

建立一套可靠的自動備份與還原策略,不是一個「選項」,而是經營一個成功網站的「必要條件」。無論你選擇簡單好用的 UpdraftPlus,還是功能強大的 WP-CLI,今天就立刻動手設定好它。

這份小小的時間投資,會在未來的某個關鍵時刻,為你省下無數個小時的壓力和無法估計的損失。把這些瑣事交給自動化流程,你才能專注在真正重要的事情上——創造優質的內容、提供更好的服務、發展你的事業。

如果你在設定過程中遇到任何問題,或是希望由專業團隊為你的網站建立更全面、更企業級的備份與安全防護策略,歡迎聯繫浪花科技。我們很樂意為你提供專業的協助,讓你的網站永遠安全無虞。

常見問題 (FAQ)

Q1: 我應該多久備份一次我的 WordPress 網站?

這取決於你網站內容的更新頻率。一個基本的建議是:資料庫每日備份,檔案每週備份。如果你的網站是電商或新聞網站,內容變動非常頻繁,你可能需要考慮更密集的備份排程,例如每小時備份資料庫。

Q2: 只用主機商提供的備份服務足夠嗎?

主機商的備份是一個很好的起點,但不應該是唯一的備份。我們強烈建議你建立自己的獨立備份,並存放在異地(例如 Google Drive、Dropbox)。這就像雞蛋不要放在同一個籃子裡,如果主機商的備份系統出問題,或你的帳號被盜用,你還有自己的備份可以使用,這才是最保險的做法。

Q3: 使用 UpdraftPlus 或其他備份外掛會不會拖慢我的網站速度?

優秀的備份外掛如 UpdraftPlus,通常會在網站流量較低的離峰時段(例如半夜)執行備份任務,並且會對資源使用進行優化,以盡量減少對網站前端效能的影響。在備份進行的短時間內,後台可能會稍微變慢,但對前台訪客的體驗影響極小。相比於沒有備份的風險,這點輕微的效能耗損是完全可以接受的。

Q4: 我用 WP-CLI 備份後,該如何還原網站?

使用 WP-CLI 還原網站也很直接。首先,將你的檔案備份檔(例如 `files_backup.tar.gz`)解壓縮並覆蓋掉 `wp-content` 資料夾。然後,匯入資料庫備份檔,指令是 `wp db import db_backup.sql`。執行這兩步後,你的網站就能恢復到備份時的狀態。建議在還原前,先清空現有的資料庫,避免資料衝突。

 
立即諮詢,索取免費1年網站保固