昨天服務器意外關閉,導致開發環境數據庫文件損壞,所以想起了做自動備份的事情,原本是打算自己用Mysqldump寫個腳本來做計劃任務的,不過出於偷懶的角度考慮,在網上找了找,發現了automysqlbackup,看評論都還不錯,而且本身也是shell腳本實現的。本著不重復造輪子的精神,就下載來使用了。
地址:http://sourceforge.net/projects/automysqlbackup/
選擇的版本是最新的automysqlbackup-v3.0_rc6.tar.gz。
安裝非常簡單,比較麻煩的地方,是後面配置郵件客戶端,以及腳本中的一個小bug。
1、在任意目錄下,解壓文件包
–xzf automysqlbackup-v3.0_rc6..gz
2、省事起見,切個權限
-
3、安裝(若對路徑沒有什麼特別的要求,出現提示回車即可)
./.
默認配置文件位置:/etc/automysqlbackup
默認sh文件位置:/usr/local/bin
4、修改配置文件
安裝完成,默認會有兩個配置文件,一個是automysqlbackup.conf,還有一個是myserver.conf。
實際上看了安裝腳本就知道,這兩個文件本來就是拷貝冗余了一個出來,猜測用途是防止二次安裝或者誤操作的情況下,誤操作覆蓋已經配置好的配置文件。不過從腳本邏輯上看起來,貌似沒太大用,因為他重裝,照樣兩個文件一塊會覆蓋。不過如果發現automysqlbackup.conf配置有值的話,會給出提示就是了。
依舊,為了偷懶期間,就直接修改automysqlbackup.conf了,畢竟這是默認配置,sh執行的時候,不用帶任何參數。
主要需要注意的配置,有以下幾個:(配置文件中,帶有默認值,如果不需要更改,直接保持被注釋的狀態就好)
== host name of MySQL server to be used =/= Daily/Weekly Backup e.g. ( =(=( you want monthly backups? ( to day of the month, it will be = you want weekly backups? ( to where =* CONFIG_rotation_daily= weekly backups. VALUE*= monthly backups. VALUE*=?=?- log : send only log - files : send log - stdout : will simply output the log to the screen - quiet : Only send logs =?=
5、先改個腳本的小bug吧。。不過如果你的server上mail和mutt齊備,請忽略該步驟。
/usr/local/bin/automysqlbackup
到1026行,將:
[[ = || = ]]; =( [[ = ]]; =( [[ != ]]; =(
改為:
[[ != ]]; [[ = || = ]]; =( [[ = ]]; =( [[ = || = ]]; =( [[ = ]]; =(
6、安裝郵件客戶端 mutt+msmtp
apt-get mutt
安裝mutt的時候,會自動安裝postfix用作mail server,問題是這玩意太大,出於比較有潔癖的心態,我就主動把它干掉了。畢竟小巧玲珑的msmtp在那等著我呢。(看個人需求和喜好而定)
apt--get autoremove –purge
安裝msmtp
apt-get msmtp
安裝完了,來配郵件吧。
7、郵件客戶端配置
/etc/Muttrc
最上面加上如下:
====username@== no
然後到~目錄下,新建個.msmtprc
cd ~ .msmtprc
加上如下內容:
~/.msmtp.log
因為這裡是明文密碼,所以建議修改個600之流,再增加個日志文件
~/.msmtp.log
這全部完成了的話,可以試試郵件發不發的出去了。
|mutt -s [email protected]
測試成功的話,就跑一下備份腳本看看吧
8、裝上幾個我服務器上木有的命令:
apt-get -get pigz
9、mysql如果之前沒設環境變量,只是加了個快捷方式的話,設個環境變量
/etc/profile
在最後的位置加入
export PATH=$PATH:/usr/local/mysql/bin
保存,然後再刷新檢查下
source /etc/ $PATH
10、啟動下備份腳本試試了,對了,記得要先創建備份路徑
mkdir /srv/backup
mkdir /srv/backup/mysql
automysqlbackup
如果沒什麼問題的話,就會看到備份文件路徑下面,自動給你創建好了幾個目錄:
daily fullschema latest monthly status tmp weekly
而且打開daily,裡面應該就會有剛才備份的文件了。
再去check一下mail,都ok,那就配個計劃任務就完事了。
11、配置計劃任務
crontab –l
先查查看目前有沒有任務,沒有的話,就在~建個配置文件
cd ~ root-crontab
內容添上
30 23 * * * /usr/local/bin/automysqlbackup
表示每天23點30,自動運行備份腳本
然後再添加到計劃任務裡面去
crontab -u root root-crontab
齊活。。。