- 論壇徽章:
- 3
|
本帖最后由 屠夫吧 于 2015-08-25 15:16 編輯
實(shí)現(xiàn)mysqldump自動備份MySQL某個(gè)庫,并郵件通知備份情況
1、創(chuàng)建備份文件夾以及備份腳本
[root@gusha ~]# cd Desktop/
[root@gusha Desktop]# vi auto_wyzc.sh
#!/bin/sh
# Script name : auto_db_wyzc.sh
# Backup the wyzc database
dir=`date +%Y-%m-%d`
dbname='wyzc'
if [ -d /home/backups ]; then
mkdir /home/backups/$dir
mysqldump --user=wyzc --password=wyzc $dbname > /home/backups/$dir/$dbname.sql
if [ $?=0 ]; then
#Bzip2 the dump.sql
bzip2 -z9v /home/backups/$dir/$dbname.sql
#Remove the dump.sql from disk
rm -f /home/backups/$dir/$dbname.sql
fi
fi
# End
~
[root@gusha Desktop]# chmod +x auto_wyzc.sh
創(chuàng)建備份文件夾:
[root@gusha Desktop]# mkdir /home/backups
測試執(zhí)行備份腳本:
[root@gusha Desktop]# ./auto_wyzc.sh
mkdir: cannot create directory `/home/backups/2015-03-13': File exists
Warning: Using a password on the command line interface can be insecure.
/home/backups/2015-03-13/wyzc.sql: 4.418:1, 1.811 bits/byte, 77.37% saved, 5284 in, 1196 out.
[root@gusha Desktop]# cd /home/backups/2015-03-13/
[root@gusha 2015-03-13]# ls
wyzc.sql.bz2
[root@gusha 2015-03-13]# bzip2 -d wyzc.sql.bz2
[root@gusha 2015-03-13]# ls
wyzc.sql
2、實(shí)現(xiàn)郵件通知備份結(jié)果的腳本
[root@gusha ~]# cd Desktop/
[root@gusha ~]# vi auto_mail.sh
#!/bin/sh
# Script Name : auto_mail.sh
# Sends an email with the dump realized before
dir=`date +%Y-%m-%d`
dbname='wyzc'
mutt user@tosend.com -s "Today backup" -a /home/backups/$dir/$dbname.sql.bz2 < /dev/null
# End
注:使用mutt發(fā)送郵件需要安裝mutt客戶端(yum install mutt即可)
[root@gusha Desktop]# chmod +x auto_mail.sh
3、備份和發(fā)郵件的腳本都有了,那么如果實(shí)現(xiàn)自動備份和郵件通知呢,我們這里采用定時(shí)任務(wù)。
假設(shè)我們每天8點(diǎn)30備份,9點(diǎn)發(fā)郵件,輸入crontab -e命令編輯,輸入如下2行:
30 8 * * * /Desktop/auto_wyzc.sh > /dev/null
00 9 * * * /Desktop/auto_mail.sh > /dev/null
如此便完成了每天自動備份MySQL數(shù)據(jù)庫的某個(gè)庫(或全庫),然后并郵件通知備份結(jié)果了。
上篇鏈接:mysqldump備份數(shù)據(jù)上篇-基本語法介紹
更多精彩視頻及MySQL學(xué)習(xí)文章,請關(guān)注我:
宋康-更多精彩視頻,盡在我贏職場.png (8.52 KB, 下載次數(shù): 45)
下載附件
2015-08-25 14:10 上傳
|
|