当前位置: 首页 > news >正文

linux下脚本监控mysql主从同步异常时发邮件通知

在MySQL中,同步异常监控通常涉及监控复制的状态。可以通过查询SHOW SLAVE STATUS命令来获取复制的状态信息,并对其进行监控。以下是一个简单的SQL脚本,用于监控MySQL复制状态并输出异常信息:

查mysql slave状态

SHOW SLAVE STATUS\G

如果你需要自动化监控并在发现异常时采取行动,可以编写一个脚本来定期运行这个命令,并根据输出结果判断复制是否正常。

以下是一个简单的Shell脚本示例,用于监控MySQL复制状态并在复制异常时发送邮件报警:

#!/bin/bash# MySQL的用户名、密码、主机和数据库名
USER="your_username"
PASSWORD="your_password"
HOST="your_host"
DBNAME="your_dbname"# 获取复制状态
STATUS=$(mysql -u$USER -p$PASSWORD -h$HOST $DBNAME -e "SHOW SLAVE STATUS\G" 2>&1)# 检查SQL线程和IO线程是否都在运行
if [[ $STATUS == *"Running"* ]]; thenecho "Replication is running."
elseecho "Replication error detected:"echo "$STATUS"# 发送邮件报警echo "$STATUS" | mail -s "MySQL Replication Error" your_email@example.com
fi

确保你有一个可以发送邮件的邮件服务器配置在你的系统上,并且替换脚本中的your_usernameyour_passwordyour_hostyour_dbname, 和your_email@example.com为实际的值。

这个脚本每次运行时都会检查MySQL复制状态,如果发现异常,它会输出错误信息并发送邮件报警。你可以将其加入到定时任务中(如crontab)以周期性地执行。

Linux 发送邮件配置

安装mailx

mysql检测同步异常脚本

# 安装mailx
yum -y install mailx

在mysql从机 mysqlsynccheck.sh

#!/bin/bash# MySQL的用户名、密码、主机和数据库名
USER="root"
PASSWORD="root"
HOST="192.168.88.6"
DBNAME="sku"# 获取复制状态
IO_SQL_STATUS=$(mysql -h$HOST -u$USER -p$PASSWORD -e 'show slave status\G' 2>/dev/null |awk '/Slave_.*_Running:/{print $1$2}')for i in $IO_SQL_STATUS; doTHREAD_STATUS_NAME=${i%:*}THREAD_STATUS=${i#*:}if [ "$THREAD_STATUS" != "Yes" ]; thenecho "Error: MySQL Master-Slave $THREAD_STATUS_NAME status is $THREAD_STATUS!" |mail -s "Master-Slave Staus" yzzxxx@126.comfi
done

给执行权限

chmod +x mysqlsynccheck.sh

加入到crontab中

crontab -e

*/10 * * * *  /root/mysqlsynccheck.sh

Linux 发送邮件配置

 以QQ邮箱为例:帮助系统
登录QQ邮箱 -> 设置 -> 账户 -> 开启服务“POP3/SMTP服务” -> 获取授权码(16个随机字母)

配置mailx服务
# 查看配置信息
cat /etc/mail.rc# 将下面配置添加到`/etc/mail.rc`文件尾部
echo '
#######################################################
set smtp=smtp.qq.com:587                  # 邮箱服务器地址
set smtp-auth=login                       # 认证方式:采用用户名和密码登录方式
set smtp-auth-user=4988xxxxxx@qq.com       # TODO 账号
set smtp-auth-password=xxx                # TODO 注:这里填写在QQ邮箱`设置` -> `账号` 里面开启`POP3/SMTP服务`生成的`授权码` !!!
set from=4988xxxxxx@qq.com                 # TODO 邮件发送人地址
set ssl-verify=ignore
#######################################################
' >> /etc/mail.rc
发送邮件
# 命令格式:echo '邮件内容' | mail -s '主题' 收件人邮箱(多个邮件空格分隔)
echo 'hello world!' | mail -s '你好' 4988xxx@qq.com yzzxxx@126.com

相关文章:

linux下脚本监控mysql主从同步异常时发邮件通知

在MySQL中,同步异常监控通常涉及监控复制的状态。可以通过查询SHOW SLAVE STATUS命令来获取复制的状态信息,并对其进行监控。以下是一个简单的SQL脚本,用于监控MySQL复制状态并输出异常信息: 查mysql slave状态 SHOW SLAVE STAT…...

【MySQL】分组排序取每组第一条数据

需求:MySQL根据某一个字段分组,然后组内排序,最后每组取排序后的第一条数据。 准备表: CREATE TABLE t_student_score (id int(11) NOT NULL AUTO_INCREMENT COMMENT ID,stu_name varchar(32) NOT NULL COMMENT 学生姓名,course…...

滚珠螺杆在精密机械设备中如何维持精度要求?

滚珠螺杆在精密设备领域中的运用非常之广泛,具有精度高、效率高的特点。为了确保滚珠螺杆在生产设备中能够发挥最佳性能,我们必须从多个维度进行深入考量,并采取针对性的措施,以确保其稳定、精准地服务于现代化生产的每一个环节。…...

现代 c++ 三:右值引用与移动语义

c11 为了提高效率,引入了右值引用及移动语义,这个概念不太好理解,需要仔细研究一下,下文会一并讲讲左值、右值、左值引用、右值引用、const 引用、移动构造、移动赋值运行符 … 这些概念。 左值和右值 左值和右值是表达式的属性。…...

Java学习【类与对象—封装】

Java学习【类与对象—封装】 封装的概念封装的实现包的概念import 导包导包中*的介绍import static 导入包中的静态方法和字段 static关键字的使用static 修饰成员变量static修饰方法静态成员变量的初始化 代码块静态代码块非静态代码块/实例化代码块/构造代码块加载顺序 封装的…...

Co-Driver:基于 VLM 的自动驾驶助手,具有类人行为并能理解复杂的道路场景

24年5月来自俄罗斯莫斯科研究机构的论文“Co-driver: VLM-based Autonomous Driving Assistant with Human-like Behavior and Understanding for Complex Road Scenes”。 关于基于大语言模型的自动驾驶解决方案的最新研究,显示了规划和控制领域的前景。 然而&…...

硅胶可以镭射吗?

在科技发展的今天,我们经常会遇到各种各样的材料,其中就有一种叫做硅胶的材料。那么,硅胶可以镭射吗?答案是肯定的,硅胶不仅可以镭射,而且在某些应用中,它的镭射特性还非常突出。 首先&#xff…...

财务风险管理:背后真相及应对策略

市场经济蓬勃发展,机遇与风险并存也是市场经济的一项重要特征。而财务状况的好坏影响着一个企业的发展前景,作为市场经济的必然产物,财务风险贯穿于企业的一切生产经营活动中,无法预知也不以人的意志为转移。 一、企业财务风险的特…...

MySQL深入理解事务(详解)

事务概述 事务是数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库始终保持一致性,同时我们还能通过事务机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。 1、基本概念 事务:一组…...

【Linux系统】进程控制

本篇博客整理了进程控制有关的创建、退出、等待、替换操作方面的知识,最终附有模拟实现命令行解释器shell来综合运用进程控制的知识,旨在帮助读者更好地理解进程与进程之间的交互,以及对开发有一个初步了解。 目录 一、进程创建 1.创建子进…...

Go语言数值类型教程

Go语言提供了丰富的数值类型,包括整数类型、浮点类型和复数类型。每种类型都有其特定的用途和存储范围。下面将详细介绍这些类型,并附带示例代码。 原文链接: Go语言数值类型教程 - 红客网-网络安全与渗透技术 1. 整数类型 原文链接&#xf…...

Linux进程控制——Linux进程等待

前言:接着前面进程终止,话不多说我们进入Linux进程等待的学习,如果你还不了解进程终止建议先了解: Linux进程终止 本篇主要内容: 什么是进程等待 为什么要进行进程等待 如何进程等待 进程等待 1. 进程等待的概念2. 进…...

GPT-4o:融合文本、音频和图像的全方位人机交互体验

引言: GPT-4o(“o”代表“omni”)的问世标志着人机交互领域的一次重要突破。它不仅接受文本、音频和图像的任意组合作为输入,还能生成文本、音频和图像输出的任意组合。这一全新的模型不仅在响应速度上达到了惊人的水平,在文本、音频和图像理解方面也表现出色,给人带来了…...

灵活的静态存储控制器 (FSMC)的介绍(STM32F4)

目录 概述 1 认识FSMC 1.1 应用介绍 1.2 FSMC的主要功能 1.2.1 FSMC用途 1.2.2 FSMC的功能 2 FSMC的框架结构 2.1 AHB 接口 2.1.1 AHB 接口的Fault 2.1.2 支持的存储器和事务 2.2 外部器件地址映射 3 地址映射 3.1 NOR/PSRAM地址映射 3.2 NAND/PC卡地址映射 概述…...

nginx-rtmp

1.已经安装nginx;configure配置模块;make编译无需安装;把objs/nginx复制到已安装的宁目录下 ./configure --prefix/usr/local/nginx --add-module/usr/local/src/fastdfs-nginx-module/src --add-module/usr/local/src/nginx-rtmp-module-mas…...

nginx 代理java 请求报502

情况:nginx代理java 请求 后端返回正常,但是经过nginx 时报502 经过多次对比其他接口发现可能是返回的请求头过大,导致nginx 报错:如下 2024/05/13 02:57:12 [error] 88#88: *3755 upstream sent too big header while reading r…...

面试集中营—Redis面试题

一、Redis的线程模型 Redis是基于非阻塞的IO复用模型,内部使用文件事件处理器(file event handler),这个文件事件处理器是单线程的,所以Redis才叫做单线程的模型,它采用IO多路复用机制同时监听多个socket&a…...

关于使用git拉取gitlab仓库的步骤(解决公钥问题和pytho版本和repo版本不对应的问题)

先获取权限,提交ssh-key 虚拟机连接 GitLab并提交代码_gitlab提交mr-CSDN博客 配置完成上诉步骤之后,执行下列指令进行拉去仓库的内容 sudo apt install repo export PATHpwd/.repo/repo:$PATH python3 "实际路径"/repo init -u ssh://gitxx…...

Django图书馆综合项目-学习(2)

接下来我们来实现一下图书管理系统的一些相关功能 1.在书籍的book_index.html中有一个"查看所有书毂"的超链接按钮,点击进入书籍列表book_list.html页面. 这边我们使用之前创建的命名空间去创建超连接 这里的book 是在根路由创建的namespacelist是在bo…...

vue3+ts 获取input 输入框中的值

从前端input 输入框获取值&#xff0c;通过封装axios 将值传给后端服务 数据格式为json html <el-form> <el-form-item label"域名"><el-input v-model"short_url" style"width: 240px"type"text"placeholder&quo…...

直方图均衡化:从理论到实践——MATLAB代码实现与效果对比

1. 直方图均衡化基础概念 直方图均衡化是数字图像处理中最基础也最实用的技术之一。简单来说&#xff0c;它就像给照片做了一次"智能美颜"&#xff0c;能够自动调整图像的对比度&#xff0c;让暗部更清晰、亮部更细腻。想象一下你拍摄了一张背光的人像照片&#xff0…...

Python数据处理实战:列表推导式+time库+DataFrame+groupby详细代码注释

&#x1f6a2; 船长Talk | 每天一篇数据分析干货 关注公众号「船长Talk」&#xff0c;获取更多 Python / 数据分析 / SQL 实战技巧&#xff0c;附完整注释代码。 每篇文章都有详细代码注释&#xff0c;学了就能用。Python 数据处理实战&#xff1a;列表推导式 time库 DataFra…...

嵌入式设备参数存储优化方案与实践

1. 嵌入式设备参数存储的痛点与常见方案在嵌入式系统开发中&#xff0c;参数存储是个看似简单却暗藏玄机的基础功能。我经历过多个量产项目&#xff0c;发现参数管理不当导致的现场问题占比高达30%。最常见的场景是&#xff1a;设备运行多年后需要功能升级&#xff0c;新增几个…...

Bugtton:ATmega328P专用超低开销按钮消抖库

1. 项目概述Bugtton 是一款专为 ATmega328P 微控制器深度优化的轻量级按钮消抖库&#xff0c;其设计哲学直指嵌入式系统中一个被长期忽视却至关重要的性能瓶颈&#xff1a;空闲状态下的 CPU 周期开销。在传统 Arduino 风格的按钮处理方案中&#xff0c;digitalRead()函数因其通…...

离谱又惊艳!C++隐藏宝藏库numeric_range深度探索,竟藏着JS彩蛋和隐零点

文章目录离谱又惊艳&#xff01;C隐藏宝藏库numeric_range深度探索&#xff0c;竟藏着JS彩蛋和隐零点一、初遇&#xff1a;以为是青铜&#xff0c;实则是王者二、深挖&#xff1a;废弃方法的“马甲现场”&#xff0c;官方摆烂实锤三、惊现&#xff1a;一整个范围家族&#xff0…...

新手必看:知乎话题数据采集从入门到精通(含代理IP配置与数据清洗技巧)

知乎数据采集实战指南&#xff1a;从零搭建合规爬虫系统 在信息爆炸的时代&#xff0c;知乎作为高质量内容社区&#xff0c;汇聚了大量行业见解和用户真实反馈。对于市场研究人员、产品经理或数据分析师而言&#xff0c;获取这些数据能为决策提供宝贵参考。本文将系统性地介绍如…...

华为MateBook X Pro 2020款在Ubuntu系统中提升音质

华为MateBook X Pro 2020款在Ubuntu系统中可以达到相当不错的音质&#xff0c;但需要解决驱动兼容性问题并进行系统优化才能充分发挥其硬件潜力。 硬件音频配置 MateBook X Pro 2020款配备了4个扬声器&#xff08;双高音喇叭双下沉式低音炮&#xff09;&#xff0c;支持杜比全…...

2025届学术党必备的十大降AI率工具推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 对于知网AI检测系统来讲&#xff0c;要降低生成文本的可识别性&#xff0c;得从词汇层面施展…...

ECU-TEST实战:如何用TCF文件高效管理DBC、A2L、ODX等测试描述文件?

ECU-TEST实战&#xff1a;TCF文件高效管理DBC、A2L、ODX的工程化实践 当测试用例从实验室走向产线&#xff0c;从单一车型扩展到多平台变体&#xff0c;DBC、A2L、ODX等描述文件的版本管理往往成为效率瓶颈。某新能源车企的测试团队曾统计&#xff0c;工程师平均每天要切换7次不…...

UndertaleModTool实战指南:GameMaker游戏定制的全流程解决方案

UndertaleModTool实战指南&#xff1a;GameMaker游戏定制的全流程解决方案 【免费下载链接】UndertaleModTool The most complete tool for modding, decompiling and unpacking Undertale (and other GameMaker games!) 项目地址: https://gitcode.com/gh_mirrors/un/Undert…...