mysqldump备份数据下篇-mysqldump自动备份数据库

时间:2022-12-16 08:17:09

实现mysqldump自动备份MySQL某个库,并邮件通知备份情况

1、创建备份文件夹以及备份脚本

[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

创建备份文件夹:

[root@gusha Desktop]# mkdir /home/backups

测试执行备份脚本:

[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


[size=10.5000pt]2、实现邮件通知备份结果的脚本

[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 -s "Today backup" -a /home/backups/$dir/$dbname.sql.bz2 user@tosend.com < /dev/null

# End


注:使用mutt发送邮件需要安装mutt客户端(yum install mutt即可)

[root@gusha Desktop]# chmod +x auto_mail.sh


[size=10.5000pt]3、备份和发邮件的脚本都有了,那么如果实现自动备份和邮件通知呢,我们这里采用定时任务。

假设我们每天830备份,9点发邮件,输入crontab -e命令编辑,输入如下2行:

30 8 * * * /Desktop/auto_wyzc.sh > /dev/null

00 9 * * * /Desktop/auto_mail.sh > /dev/null


如此便完成了每天自动备份MySQL数据库的某个库(或全库),然后并邮件通知备份结果了。