自動MySQL備份搞定

最近把新機器弄了起來 就想說要把我的Blog搬到我自己的新機器上面去(有新家真好...XDDD) 當然因為我之前實在是太惡搞我學弟的機器 所以以至於說一堆MySQL的基本指令不能用(就指令找不到啦) 我真的頓時覺得超QQ的 因為我嘗試使用PHPMyaadmin去Dump出我的資料 但是我真的很多當初不曉得怎麼搞的 一堆資料庫的編碼不對 導致說PHPmyadmin太聰明的邦我轉碼 變成名副其實的"UTF-8亂碼" 都還原不回來 到最後把整個MySQL殺掉重裝 才搞定好這個問題 到最後的問題也是用mysqldump搞定 前幾天都在想說要怎麼做備份 簡單來說就是一整個備份策略(就是外加網站檔案 因為太大了寄不出去) 講一個非常老實的話我還沒完全擬定好...Orz

因為我最想要的就是直接mail到我的mailBox(因為我有Google app mail空間丟著很費浪...Orz 反正7G多了 當作一種備份儲存裝置也不錯 最重要的是mail fliter也弄的不錯) 所以說我要如何做到最基本的每天就定時dump出MySQL --> Zip sql --> mail附件出去 這就是最基本的處理方式 雖然說有的我之前已經實做過了 前幾天在搞定自己電腦的時候問題還是一堆

這裡簡述一下流程

Step 1. 先確認自己電腦有無Mail服務 如果沒有先去自己搞定一個 KeyWord:sendmail postfix

Step 2. Mysql備份 就是要先搞定Mysql的Dump 最簡單最快速的還是使用"mysqldump 有的時候去請教男人mysqldump要怎麼用還會看不懂...Orz

mysqldump -u[管理者id] -p[管理者密碼] [資料庫名稱] > [輸出檔名].sql
這樣就OK了 往後要作些定期備份的話也很方便 寫入Shell中就好了回復的話 就先建立好空白資料庫 再把Dump出來的東西打回去就好了
mysql -u[管理者id] -p[管理者密碼] [資料庫名稱] < [輸出檔名].sql
接著打包 就進入step3

Step 3. Mail出去 因為之前說到的要mail服務就是要在這裡用到 因為在文字介面底下 所以說要找到好用的Mail附件的軟體真的不容易 我是Google到"mutt" 如果要用sendmail的話要用uuencode這個奇怪的東西 所以說我還是選擇用"mutt"

mutt -s "[信件主旨]" -a [附件名稱].zip [mail位置@where.are.you]
要注意的地方是說這裡的話沒有內容他會要你打內容 所以說你可以利用兩種方式一種是你固定打好內容
mutt -s "[信件主旨]" -a [附件名稱].zip [mail位置@where.are.you] < 內容文字檔
或是
echo "你的內容" | mutt -s "[信件主旨]" -a [附件名稱].zip [mail位置@where.are.you]
如果利用echo的話就可以玩的花樣就多一點了

以上就是我的Mysql的的其備份的方式 分享一下我的備份Script...Orz

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#!/bin/bash
today=`date +%y%m%d`
mysqldump -u[你看不到] -p********* Gallery2 > Gallery2.sql
mysqldump -u[你看不到] -p********* MediaWiki > MediaWiki.sql
mysqldump -u[你看不到] -p********* Wordpress > Wordpress.sql
mysqldump -u[你看不到] -p********* shorturl > shorturl.sql
zip -9r sqlbak$today.zip *.sql
rm *.sql
echo "$today Data base backup" | mutt -s "Web Mysql Database Backup" -a  sqlbak$today.zip [mail位置@where.are.you]
rm sqlbak$today.zip sent

接著我就把這個bash寫到 crontab中每天固定的同一時間就會自動去run了...XD

Mon Mar. 30 2009
Comments

Comments