利用脚本应该如何备份Mysql数据库和binlog日志

  

下面一起来了解下利用脚本应该如何备份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"电子邮件

以美元上脚本执行后会在备份目录中产生一个焦油。广州的文件,此文件为全库备份文件,备份成功后给指定的邮箱地址发送邮件,收件内容为截图内容为备份成功!

利用脚本应该如何备份Mysql数据库和binlog日志


接下来是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

利用脚本应该如何备份Mysql数据库和binlog日志