WordPress 備份要怎麼做?自架網站異地備份,備份腳本分享

WordPress 備份要怎麼做?自架網站異地備份,備份腳本分享

想像一下,某天早上醒來,發現經營多年的部落格…消失了?!😱 可能是被駭客攻擊、主機商跑路、或是自己手殘誤刪… 這時候,如果有「備份」,你就能像奇異博士一樣使用時間寶石,把網站變回來! 今天藥藥要來教大家,不花錢買昂貴的備份外掛,如何自己動手做 異地備份

🧐 為什麼要自己備份?

你可能會說:「主機商都有備份啊!」 恩…雞蛋不要放在同一個籃子裡嘛!

  1. 異地備援:主機壞了,備份也可能跟著一起壞。存在自己家裡最安心。
  2. 省錢:WordPress 備份外掛雖然方便,但稍微好用一點的都要收費,而且檔案太大還會被限制。
  3. 掌握度:自己的資料自己收好,不用擔心資料外洩。

📦 我們要備份什麼?

WordPress 的靈魂主要由兩部分組成,缺一不可:

  1. MySQL 資料庫:存放你辛苦寫的所有文章文字、設定、留言。
  2. 網頁目錄 (www):存放 WordPress 核心程式、你上傳的圖片、安裝的主題和外掛。

🛠 準備工俱

這次我們要用一個強大的指令叫做 rsync。 它很聰明,只會傳輸「有變動」的檔案。 比如你今天只新增了一張圖片,它就只備份那張圖片,不會笨笨的把整個網站幾 GB 的資料重新傳一次,非常省時間和流量!

需求清單

  • 主機端:有 SSH 權限(這是必須的!)。
  • 本地端(你家電腦或 NAS):最好是 Linux 系統(Mac 也可以喔),硬碟空間要夠大。

📝 自動備份腳本 (Script)

來!藥藥已經幫大家把魔法咒語(腳本)寫好了。 你可以把它存成 backup.sh

#!/bin/bash

# 設定你的神秘鑰匙 (SSH Key) 位置
private_key=~/.ssh/my_key.id_rsa

# 設定主機帳號與網址
target_host=my_account@heavenfortress.com

# 設定要備份下來的檔案要暫存在哪裡
mirror_dir="/Volumes/Samsung_T5/heavenfortress_mirror"

# 設定最後打包好的壓縮檔要丟去哪(例如 Google Drive 同步資料夾)
gdrive="/Volumes/GoogleDrive/我的雲端硬碟/天界之舟/heavenfortress.com.bak"

# 設定檔案名稱(自動加上今天的日期,帥吧!)
target_file_name=/Volumes/Samsung_T5/heavenfortress.com.`date +%Y%m%d`.zip

# --- 魔法開始 ---

# 登入遠端,把資料庫 dump 出來
ssh -i $private_key $target_host 'mysqldump -p"資料庫密碼" -u 資料庫帳號 資料庫名稱 > sql_backup/www.sql'

mkdir -p $mirror_dir

# 用 rsync 把資料庫檔案抓回來
rsync -e "ssh -i $private_key" --progress -aHv $target_host:~/sql_backup $mirror_dir

# 用 rsync 把整個網站資料夾抓回來(只抓有變動的)
rsync -e "ssh -i $private_key" --progress -aHPv --del $target_host:~/www $mirror_dir

# 把抓回來的東西打包成一個 zip 檔
zip -yr -9 $target_file_name $mirror_dir

# 把壓縮檔搬到雲端硬碟資料夾 (搞定收工!)
mv $target_file_name "$gdrive"

⏰ 如何自動執行?

寫好腳本後,我們可以利用 crontab 讓電腦每天半夜自動起床幫你備份。 輸入 crontab -e 加入排程即可。

這樣一來,不管發生什麼事,你都有滿滿的備份檔案,隨時可以東山再起啦!💪

累積閱覽

💬 Conversation

Share your thoughts

No sparks yet. Waiting for your first word...

Scroll down to load more comments...

Table of Contents