Mysqldump备份脚本 发表于 2016-12-30 | 分类于 mysql 这里记录一个mysql常用的备份脚本,使用mysqldump备份。对于数据量不是很大的来说应该够用了。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#!/bin/bashexport /etc/profile#数据库用户db_user=root#数据库密码db_pass=xxx#数据库IP地址db_ip=xxx#数据库端口db_port=3306mysql=/bin/mysqlmysqldump=/bin/mysqldumpDate=`date +%Y%m%d`Old_Date=`date '-d 30 day ago' "+%Y%m%d"`Dir=/back/mysql_bak#数据库备份目录BakDir=$Dir/$Date#备份的数据库表单Datalist=$Dir/database.txt#30天前备份的数据库文件所在目录OldBak_Dir=$Dir/$Old_Date#创建和进入备份文件夹Log=$Dir/mysql_back.log#接收报警的邮件Mail=xxx@qq.commkdir $BakDir -pcd $BakDirecho "" >> $Logecho "" >> $Logecho "" >> $Logecho "" >> $Logecho "" >> $Logecho " ********************************** $Date 备份开始 ********************************** " >> $Log#获取最新数据库列表$mysql -u$db_user -p$db_pass -h$db_ip -P$db_port -Bse "show databases" | grep -v mysql | grep -v performance_schema | grep -v test |grep -v information_schema > $Datalistfor i in `cat $Datalist`doDatabase=$iDumpFile="$Database"_"$Date".sqlGZDumpFile="$Database"_"$Date".sql.tar.gzecho "`date +%Y-%m-%d\ %H:%M:%S` 开始备份$Database" >> $Log$mysqldump -u$db_user -p$db_pass -h$db_ip -P$db_port --force -q -R $Database > $DumpFile 2>/back/mysql_bak/mysqldump_error.logif [ $? -ne 0 ]thenecho "mysqldump $i error" | mail -s "mysqldump $i error" $Mailfiecho "`date +%Y-%m-%d\ %H:%M:%S` $Database备份完成" >> $Log#打包和删除echo "`date +%Y-%m-%d\ %H:%M:%S` 开始打包$Database" >> $Log/bin/tar czvf $GZDumpFile $DumpFile echo "`date +%Y-%m-%d\ %H:%M:%S` 打包完成$Database" >> $Log/bin/rm $DumpFileecho "`date +%Y-%m-%d\ %H:%M:%S` 删除原始文件$DumpFile" >> $Logdoneecho " ********************************** $Date 备份结束 ********************************** " >> $Log#备份完成后刷新二进制日志mysql -u$db_user -p$db_pass -h$db_ip -P$db_port -e 'flush logs'#删除30天前备份的数据库文件所在目录/bin/rm -rf $OldBak_Dir 坚持原创技术分享,您的支持将鼓励我继续创作! 赏 微信打赏 支付宝打赏