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

2013-03-22 工作筆記

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

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

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

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

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

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

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

一開始在這台主機上要安裝fuse-sshfs 就碰到了很多問題，yum沒有預設，要另外下載，COMPILE又發生沒compiler的狀況，一一排除後，卻出現一個無解的問題。 > fuse: failed to open /dev/fuse: Permission denied 翻了GOOGLE，大部分的解法都是把執行的帳號加入fuse群組

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

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

好吧，反正我是要異地備援，那我去另一台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 abc@abc.com:/ /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 ，拋資料真的很快！

comments powered by Disqus
© 2017 by Lednerb
Bilberry Hugo Theme