- 论坛徽章:
- 3
|
本帖最后由 屠夫吧 于 2015-08-25 15:16 编辑
实现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
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 user@tosend.com -s "Today backup" -a /home/backups/$dir/$dbname.sql.bz2 < /dev/null
# End
注:使用mutt发送邮件需要安装mutt客户端(yum install mutt即可)
[root@gusha Desktop]# chmod +x auto_mail.sh
3、备份和发邮件的脚本都有了,那么如果实现自动备份和邮件通知呢,我们这里采用定时任务。
假设我们每天8点30备份,9点发邮件,输入crontab -e命令编辑,输入如下2行:
30 8 * * * /Desktop/auto_wyzc.sh > /dev/null
00 9 * * * /Desktop/auto_mail.sh > /dev/null
如此便完成了每天自动备份MySQL数据库的某个库(或全库),然后并邮件通知备份结果了。
上篇链接:mysqldump备份数据上篇-基本语法介绍
更多精彩视频及MySQL学习文章,请关注我:
|
|