WordPress 備份要怎麼做?自架網站異地備份,備份腳本分享
想像一下,某天早上醒來,發現經營多年的部落格…消失了?!😱 可能是被駭客攻擊、主機商跑路、或是自己手殘誤刪… 這時候,如果有「備份」,你就能像奇異博士一樣使用時間寶石,把網站變回來! 今天藥藥要來教大家,不花錢買昂貴的備份外掛,如何自己動手做 異地備份!
🧐 為什麼要自己備份?
你可能會說:「主機商都有備份啊!」 恩…雞蛋不要放在同一個籃子裡嘛!
- 異地備援:主機壞了,備份也可能跟著一起壞。存在自己家裡最安心。
- 省錢:WordPress 備份外掛雖然方便,但稍微好用一點的都要收費,而且檔案太大還會被限制。
- 掌握度:自己的資料自己收好,不用擔心資料外洩。
📦 我們要備份什麼?
WordPress 的靈魂主要由兩部分組成,缺一不可:
- MySQL 資料庫:存放你辛苦寫的所有文章文字、設定、留言。
- 網頁目錄 (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 加入排程即可。
這樣一來,不管發生什麼事,你都有滿滿的備份檔案,隨時可以東山再起啦!💪
累積閱覽 —
💬 留言交流
☕
目前還沒有留言,歡迎您留下第一則!
向下滑動載入更多留言...