遥不可及 生产环境下shell脚本:Mysql数据库备份和Mysql主从同步监控
作者:迷神
在企业的Liunx运维中 , 经常需要应用到各种shell脚本 , 比如Mysql数据库备份Shell脚本和Mysql主从同步监控Shell脚本等等常用企业运维shell脚本 。。 下面分享两例 , 希望对大家有帮助
Mysql数据库备份脚本(完整备份+异地备份)Mysql数据库备份其实方法有很多 , 一般非超大量业务 , 可以使用mysqldump 。 Mysql数据库备份可以采用在MYSQL从库上执行全量备份+增量备份方式 。 注意 , 尽力选择服务器使用少的凌晨的时候进行备份 , 如果有主从的话 , 需要在从库中备份避免Mysql主库备份的时候锁表造成业务影响 。
#!/bin/bashset-e#错误时 , 便停止执行脚本#数据库名 , 可以添加多个DATABASES=("data01""data02")USER="root"PASSWORD="123456"MAIL="123456@163.com"BACKUP_DIR=/data/backupLOGFILE=/data/backup/data_backup.logDATE=`date+%Y%m%d_%H%M`cd$BACKUP_DIR#写入日记文件echo"--------------------">>$LOGFILEecho"BACKUPDATE:"$(date+"%y-%m-%d%H:%M:%S")>>$LOGFILEecho"-------------------">>$LOGFILEforDATABASEin${DATABASES};do/usr/local/mysql/bin/mysqldump-u$USER-p$PASSWORD--events-R--opt$DATABASE|gzip>${BACKUP_DIR}/${DATABASE}_${DATE}.sql.gzif[$?==0];thenecho"$DATE--$DATABASEisbackupsucceed">>$LOGFILEelseecho"DatabaseBackupFail!">>$LOGFILEfidone#全部成功就同步到异地备份服务器if[$?==0];then/usr/bin/rsync-zrtopg--delete/data/backup/*root@192.168.10.10:/data/backup/>/dev/null2>&1elseecho"DatabaseBackupFail!">>$LOGFILE#备份失败后向管理者发送邮件提醒mail-s"databaseDailyBackupFail!"$MAILfi#删除30天以上的备份文件find$BACKUP_DIR-typef-mtime+30-name"*.gz"-execrm-f{};这里使用的是rsync进行同步 , 但是实际生产过程中 , 大家也可以使用scp或者ftp之类的都可以的 。 根据实际需要进行处理
Mysql主从同步监控邮件报警脚本监控MySQL主从同步是否正常运行 。 主要是看Slave机器的IO和SQL状态都必须为YES , 缺一不可 , 这里用到了多重条件判断 。 加入到计划任务 , 可以10分钟一次 , 根据实际需要 , 如果有一个不是YES , 那就可以通过邮件通知 , 实际的 , 大家也可以通过其他的方式 , 比如微信 , 短信等等 。
#!/bin/bash#查找mysql端口是否存在 。 MYSQLPORT='netstat-na|grep"LISTEN"|grep"3306"|awk-F[:""]+'{print$4}''MYSQLIP='ifconfigeth0|grep"inetaddr"|awk-F[:""]+'{print$4}''#mysql登陆查看从库状态STATUS=$(/usr/local/mysql/bin/mysql-udbuser-dbpwd123-S/tmp/mysql.sock-e"showslavestatus\G"|grep-i"running")IO_env='echo$STATUS|grepIO|awk'{print$2}''SQL_env='echo$STATUS|grepSQL|awk'{print$2}''if["$MYSQLPORT"=="3306"]thenecho"mysqlisrunning"elsemail-s"warn!server:$MYSQLIPmysqlisdown"magedu@gmail.comfiif["$IO_env"="Yes"-a"$SQL_env"="Yes"]thenecho"Slaveisrunning!"elseecho"#######$date#########">>/data/log/check_mysql_slave.logecho"Slaveisnotrunning!">>/data/log/check_mysql_slave.logmail-s"warn!$MySQLIP_replicate_error"magedu@gmail.com<</data/log/check_mysql_slave.logfi【遥不可及 生产环境下shell脚本:Mysql数据库备份和Mysql主从同步监控】好了 , 就这么多 , 有问题欢迎留言进行交流哦 。
推荐阅读
- 中年检测设备行业政策及环境
- 问董秘|克劳斯可以生产药用塑料瓶,为新冠疫情助力...,投资者提问:药用玻璃现在供不应求
- 金十数据|苹果欲向印转移6条生产线,印度手机市场混战:三星份额紧追小米
- 央视新闻 供所有企业研制生产,北斗发布接口控制文件覆盖全部7类服务
- 报告|7月钢铁PMI:生产增速有所回落,市场需求仍相对偏紧
- 国内生产总值|日本GDP连续两个季度为负,美媒:新冠大流行前已陷衰退
- 鼎盛军事|俄专家尖锐评论:有2处严重设计问题,苏57隐形战斗机生产线重启
- 罗罗聊数码|苹果3万多款APP下架,iPhone生产线或遭转移,反击效果出现
- 太平洋电脑网|荣耀笔记本Pro 2020锐龙版暑期来袭,最值得购买的生产力工具
- 经济日报:优化营商环境力推经济恢复
