下面讲讲关于MySQL数据库如何创建全库及二进制增量备份脚本,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL数据库如何创建全库及二进制增量备份脚本这篇文章你一定会有所受益。
1,全库备份脚本如下:
# !/bin/bash # # # # # # # # # # # # # # #定义默认值,# # # # # # # # # # # # # # # # # 用户=& # 39;根# 39; passwd=& # 39; 123. com # 39; 主机=& # 39;localhost # 39; 今天='日期& # 39;+ % f # 39;” dump_cmd=& # 39;/usr/地方/mysql/bin/, mysqldump # 39; full_backupdir=?opt/数据库/full_backup/? 电子邮件=& # 39;916551516 @qq.com& # 39; # # # # # # # # # # # # # # # # # # #,加载变量并定义脚本用法,# # # # # # # # # # # # # # # # # # # 使用(){ echo - e“033年\[33米 ,,0美元脚本用法: ,,,,,- u:指定备份用户(默认是根) ,,,,,- p:指定用户密码(默认密码为“123. com”) ,,,,,- h:指定备份主机(默认是本机) ,,,,,- d:指定要备份的数据库(默认备份所有库) 033年\ [0 m" } 如果[[1美元==& # 39;——帮助# 39;| | 1美元==& # 39;- h # 39;]],然后 ,,使用 ,,退出0 fi # # # # # # # # # # # # # # # # # # # # # #,对选项进行赋值,,,# # # # # # # # # # # # # # # # # # # 在getopt: u p: h: d:“optname;做 例“optname"美元;在 “u") ,用户=$ OPTARG ;; “p") ,passwd=$ OPTARG ;; “h") ,主机=$ OPTARG ;; “d") ,db=$ OPTARG ;; “:”) ,,呼应“此选项没有值!“ ;; “*“) ,,呼应“错误信息……“ ;; “?“) ,,呼应“不知道此选项……“ ;; esac 完成 # # # # # # # # # # # # #,对要备份的库进行判断并执行备份操作,############### [- d $ {full_backupdir}] | | mkdir - p $ {full_backupdir} cd $ {full_backupdir} :比;err.log 如果($ {# db} eq 0); ,,$ {dump_cmd} - u $ {user} - p $ {passwd} - h ${主机}- a - f,在今天的$ {}。sql 2比;err.log ,,状态=$ ? ,今天,sqlname=? {} .sql" 其他的 ,,$ {dump_cmd} - u $ {user} - p $ {passwd} - h{主机}——数据库db - f美元,比;今天的$ {}。$ {db}。sql 2比;err.log ,,状态=$ ? ,今天,sqlname=? {} {db} .sql"美元; fi # # # # # # # # # # # #,对备份状态进行判断,# # # # # # # # # # # # # # # # # # # # # 如果(${地位}eq 0); ,焦油zcf $ {sqlname} . tar。广州。/$ {sqlname} ,,rm - f $ {sqlname} # # # # # # # # # # #,如果失败,则发送报警邮件到指定邮箱# # # # # # # # # # # # # # # # 其他的 ,,呼应“备份数据库失败,错误日志如上所示! ! !“在比;err.log ,,邮件- s“mysql backup"电子邮件& lt美元;err.log fi # # # # # # # # # # # #,删除二十天前的备份文件,# # # # # # # # # # # # # # 找到。型f - name“* .tar.gz"-mtime + 20删除
2,二进制增量备份脚本
# !/bin/bash # # # # # # # # # # # # # # # # # # # # # # #定义初始值,# # # # # # # # # # # # # # # # # # # # # # # # # # # # # 用户=& # 39;根# 39; passwd=& # 39; 123. com # 39; datadir=?usr/地方/mysql/data" backupdir=?opt/数据库/dailybackup/? dump_cmd=& # 39;/usr/地方/mysql/bin/mysqlbinlog& # 39; [- d $ {backupdir}] | | mkdir - p $ {backupdir},,,,,,#判断备份文件存放路径是否存在 cd $ {datadir},,,,,#切换至mysql的数据存放路径='猫bin_log求和。指数| wc - l ',#取得所有二进制日志文件总数/usr/local/mysql/bin/mysql - u $ {user} - p $ {passwd} - e“冲洗logs",比;/dev/null,#在备份前刷新二进制日志文件 nextnum=0,,,,#定义一个初始值为0 backupsum=0 在“猫bin_log文件。指数”,,,,#对所有二进制日志文件进行遍历 做 ,美元,binlogname=' basename文件”,,,,#获取二进制日志文件名 #如果当前备份的文件数目比总数小(新刷新的二进制文件不需要备份) ,美元,如果[nextnum lt和美元);然后, ,,(- f $ {backupdir} $ {binlogname}] | | cp - $ {file} $ {backupdir} $ {binlogname},#如果备份目录下不存在该二进制文件,则进行复制动作 ,,让nextnum + +,,#对备份成功数量进行增加 ,,fi 完成了回声“跳过最新二进制日志文件,备份完成! ! !“