艾瑞克的 Hexo 空間

[筆記]在KVM VPS上透過 fuse-sshfs + pdumpfs 做wordpress異地備援

本文發表於1731天之前,文章內容可能已經過時,如有疑問,請聯繫作者。

因為之前手賤,把原有的BLOG的資料檔都砍光光,雖然文章內容都還留著,但是圖片都變成叉燒包了 Too Sad

不過換到新的WP之後,發現多了好多布景主題可以用,現在用的這個我就覺得很棒!Big Smile

也為了要避免再次發生之前手殘的錯誤,所以一直在找一些異地備援的方式。

Wordpress本身的外掛雖然有很多號稱可以透過FTP之類的方式把備份檔案丟去其他地方

但測試了幾個之後,發現要不就是沒有定時的功能,要不就是要額外收費。

想來想去,還是乾脆自己在console下備份比較能掌握。

之前有玩過lsync,這次改用另外一招 sshfs + pdumpfs 來作作看

一開始在這台主機上要安裝fuse-sshfs 就碰到了很多問題,yum沒有預設,要另外下載,COMPILE又發生沒compiler的狀況,一一排除後,卻出現一個無解的問題。

fuse: failed to open /dev/fuse: Permission denied
翻了GOOGLE,大部分的解法都是把執行的帳號加入fuse群組

問題是,我是用 root 執行,不應該會有這種權限的錯誤才對

最後發現是因為openvz的VPS的關係,所以不能在這台去執行..So Tired

好吧,反正我是要異地備援,那我去另一台KVM的VPS安裝總可以了吧!

安裝過程就跟其他用yum安裝的軟體一樣(yum 真是好用!以前都還要自己解相依性的問題..)

yum install -y pdumpfs fuse-sshfs
接著在remote 端建立備份用的目錄還有mount用的目錄
mkdir /usr/local/abc_backup

mkdir /abc_backup
然後先把remote 端的目錄結構用sshfs mount 到/abc_backup
sshfs [email protected]:/ /abc_backup/ -p 222
這樣的指令會要求輸入密碼,要怎麼把密碼放進去,還要再研究。

好了之後就看一下是不是有沒有正確掛載

ls -la /abc_backup
正常的話應該就會看到remote端的目錄結構了

接下來換pdumpfs 上場

pdumpfs的介紹可以看官網 http://0xcc.net/pdumpfs/index.html.en

簡單說就是rsync搭配time stamp + hard link 做到差異備份這樣

指令也很簡單

pdumpfs /abc_backup /usr/local/abc_backup
一行就搞定了!

pdumpfs 可用的參數如下,真的很簡單!

Usage: pdumpfs SRC DEST [BASE]

-e, –exclude=PATTERN exclude files/directories matching PATTERN

-s, –exclude-by-size=SIZE exclude files larger than SIZE

-w, –exclude-by-glob=GLOB exclude files matching GLOB

-l, –log-file=FILE write a log to FILE

-v, –version print version information and exit

-q, –quiet suppress all normal output

-n, –dry-run don’t actually run any commands

-h, –help show this help message
沒信心的話,可以用 -n 試跑一次看看

確定之後再寫到crontab裡面去!

簡單整理步驟如下

1.在要備份的機器上,先寫好mysql dump的crontab,大概長這樣,記得要自己加入日期參數之類的

mysqladmin -uroot -pxxxxx wordpress > /123/wp.sql
2.在備份目的的機器上,安裝sshfs / pdumpfs

3.在備份目的機器上,建立掛載用的目錄/abc 還有備份用的目錄/usr/local/backup/abc

4.用sshfs掛載遠端目錄到/abc

5.用pdumpfs 把掛載進來的遠端目錄底下的 /123/wp.sql 還有 /var/www/html/wp 都備份到 /usr/local/backup/abc

6.測試完成後,在備份目的機器上,寫入crontab

大功告成!

我這兩個國外的VPS在互連,平均速率幾乎都在4Mb/5Mb ,拋資料真的很快!

 

avatar
[筆記] 簡單利用雙槽硬碟外接底座配合 群暉 NAS 達到異地備援