下面一起来了解下利用脚本应该如何备份Mysql数据库和binlog日志,相信大家看完肯定会受益匪浅,文字在精不在多,希望利用脚本应该如何备份Mysql数据库和binlog日志这篇短内容是你想要的。
闲话少说,直接上脚本
首先是为Mysql做指定库文件的全库备份
vim mysqlbak.sh
# !/bin/bash
#定义数据库目录,要能找到,mysqldump
mysqlDir=/usr
#定义用于备份数据库的用户名和密码用户=
根userpwd=123456=
dbname db1
#定义备份目录
databackupdir=/mysqlbak
#定义邮件正文文件
emailfile=$ databackupdir/email.txt
#定义邮件地址
电子邮件=www@163.com
#定义备份日志文件
日志文件=$ databackupdir/mysqlbackup.log
#日期=叭掌? % Y % m % d”
日期=日期-我的
回声““比;美元emailfile
echo $(日期+“Y % - % - % d % H: % m: % S")在比;美元emailfile
cd $ databackupdir
#定义备份文件名
dumpfile=美元mysql_ DATE.sql
gzdumpfile=mysql_ DATE.sql.tar美元。广州
#使用,mysqldump备份数据库,——flush-logs产生一个新日志
mysqlDir/bin/美元,mysqldump - u $ user - p userpwd——flush-logs - x美元dbname祝辞美元dumpfile
#压缩备份文件
如果(“$ ?“==0];然后
,,,, #把备份出来的文件进行压缩,压缩的结果保存在邮件内容中
,,焦油zcvf gzdumpfile dumpfile美元在祝辞$ emailfile 2祝辞,1
,,呼应“BackupFileName: gzdumpfile"美元;在比;美元emailfile
,,呼应“数据库备份成功!“在比;美元emailfile
,,,, #删除压缩前的sql文件
,美元,rm射频dumpfile
其他,,呼应“数据库备份失败!“在比;美元emailfile
fi
#写日志文件
回声“- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -产生绯闻;在比;美元的日志文件
猫美元emailfile祝辞祝辞美元的日志文件
#发送邮件通知
猫emailfile美元|邮件- s“Mysql Backup"电子邮件
以美元上脚本执行后会在备份目录中产生一个焦油。广州的文件,此文件为全库备份文件,备份成功后给指定的邮箱地址发送邮件,收件内容为截图内容为备份成功!
接下来是binlog日志的备份脚本
vim binlogbak.sh
# !/bin/bash
#定义数据库目录和数据目录
mysqldir=/usr/地方/Mysql
datadir=$ mysqldir/binlog
#定义用于备份数据库的用户名和密码用户=
根userpwd=123456
#定义备份目录
databackupdir=/mysqlbak
logbackupdir=$ databackupdir/日志
#定义邮件正文文件
emailfile=$ databackupdir/email.txt
#定义邮件地址
电子邮件=www@163.com
#定义备份日志文件
日志文件=$ databackupdir/mysqlbackup.log
#日期=叭掌? % Y % m % d”
回声““比;emailfile 美元;
echo $(日期+“Y % - % - % d % H: % m: % S")在比;美元emailfile
#刷新日志,使数据库使用新的二进制日志文件
/usr/bin/mysqladmin - u $ user - p $ userpwd flush-logs
cd $ datadir
#得到二进制日志列表
文件列表='猫mysql_binlog。指数”
icounter=0
文件文件列表美元
,做,#需要注意的是符号和两个操作项之间的空格毕不可少,下面也是一样
,icounter=expr icounter + 1美元的
完成nextnum=0
ifile=0
文件文件列表美元
做binlogname=$文件
nextnum=expr nextnum + 1美元的
#跳过最后一个二进制日志(数据库当前使用的二进制日志文件)
如果美元[nextnum eq icounter美元);然后
,,呼应“跳过最新的!“比;其他/dev/null
,,dest=$ logbackupdir/$ binlogname
#跳过已经备份的二进制日志文件
如果[- e dest美元];然后
,美元,呼应“跳过存在binlogname !“比;其他/dev/null
#备份日志文件到备份目录
cp binlogname logbackupdir美元
如果(“$ ?“==0];然后
ifile=expr ifile + 1美元的
回声“美元binlogname备份成功!“在比;美元emailfile
,,fi
,,,fi fi
如果美元[ifile eq 0];然后
,,呼应“没有Binlog备份!“在比;美元emailfile
else
,ifile美元,呼应“备份文件(s) !”在比;美元emailfile