脚本网盘链接下载。
1,全库备份脚本如下:
<代码> # !/bin/bash # # # # # # # # # # # # # # #定义默认值# # # # # # # # # # # # # # # # # 用户=案? passwd=' 123. com ' 主机=' localhost ' 今天=叭掌凇? % F ' ' dump_cmd=/usr/当地/mysql/bin/, mysqldump ' full_backupdir="/opt/数据库/full_backup/? 电子邮件=' 916551516 @qq.com ' # # # # # # # # # # # # # # # # # # #加载变量并定义脚本用法# # # # # # # # # # # # # # # # # # # 使用(){ echo - e”033年\[33米 0美元脚本用法: - u:指定备份用户(默认是根) p:指定用户密码(默认密码为“123. com”) - h:指定备份主机(默认是本机) - d:指定要备份的数据库(默认备份所有库) 033年\ [0 m” } 如果[[1美元==薄镏鷟 | 1美元==' - h ']); 使用 退出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备份”美元邮件& lt;err.log fi # # # # # # # # # # # #删除二十天前的备份文件# # # # # # # # # # # # # # 找到。型f - name " * . tar。广州“-mtime + 20删除代码>
2,二进制增量备份脚本
<代码> # !/bin/bash # # # # # # # # # # # # # # # # # # # # # # #定义初始值# # # # # # # # # # # # # # # # # # # # # # # # # # # # # 用户=案? passwd=' 123. com ' datadir="/usr/地方/mysql/数据” backupdir="/opt/数据库/dailybackup/? dump_cmd=/usr/当地/mysql/bin/mysqlbinlog ' [- d $ {backupdir}] | | mkdir - p $ {backupdir} #判断备份文件存放路径是否存在 cd $ {datadir} #切换至mysql的数据存放路径='猫bin_log求和。指数| wc - l ' #取得所有二进制日志文件总数/usr/local/mysql/bin/mysql - u $ {user} - p $ {passwd} - e“刷新日志”,在/dev/null #在备份前刷新二进制日志文件 nextnum=0 #定义一个初始值为0 backupsum=0 在“猫bin_log文件。指数”#对所有二进制日志文件进行遍历 做 binlogname=' basename美元文件' #获取二进制日志文件名 #如果当前备份的文件数目比总数小(新刷新的二进制文件不需要备份) 如果[$ nextnum lt和美元); [- f $ {backupdir} $ {binlogname}] | | cp - $ {file} $ {backupdir} $ {binlogname} #如果备份目录下不存在该二进制文件,则进行复制动作 让nextnum + + #对备份成功数量进行增加 fi 完成 回声“跳过最新二进制日志文件,备份完成! ! !”代码>