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

MySQL监控Shell脚本实战指南

监控MySQL服务状态的Shell脚本方法

通过Shell脚本监控MySQL服务是否正常运行,可以采用多种方式实现。以下列举几种常见方法:

使用mysqladmin命令检查

#!/bin/bash
mysqladmin -u root -p密码 ping 2>/dev/null | grep -q alive
if [ $? -eq 0 ]; thenecho "MySQL is running"
elseecho "MySQL is not running"# 可以添加自动重启命令# systemctl restart mysql
fi

通过进程检查方式

#!/bin/bash
if ps aux | grep -q [m]ysqld; thenecho "MySQL process is running"
elseecho "MySQL process is not found"
fi

检查端口监听情况

#!/bin/bash
if netstat -tulnp | grep -q 3306; thenecho "MySQL port is listening"
elseecho "MySQL port is not listening"
fi

尝试连接并执行简单查询

#!/bin/bash
if mysql -u root -p密码 -e "SELECT 1" >/dev/null 2>&1; thenecho "MySQL is accessible"
elseecho "MySQL is not accessible"
fi

完整监控脚本示例

#!/bin/bash
# 配置部分
MYSQL_USER="root"
MYSQL_PASS="密码"
ALERT_EMAIL="admin@example.com"# 检查函数
check_mysql() {# 方法1:使用mysqladminif ! mysqladmin -u $MYSQL_USER -p$MYSQL_PASS ping 2>/dev/null | grep -q alive; thenreturn 1fi# 方法2:执行简单查询if ! mysql -u $MYSQL_USER -p$MYSQL_PASS -e "SELECT 1" >/dev/null 2>&1; thenreturn 1fireturn 0
}# 主逻辑
if check_mysql; thenecho "$(date): MySQL is running normally" >> /var/log/mysql_monitor.log
elseecho "$(date): MySQL is down! Attempting to restart..." >> /var/log/mysql_monitor.logsystemctl restart mysql# 检查重启是否成功sleep 5if check_mysql; thenecho "MySQL restarted successfully" >> /var/log/mysql_monitor.logelseecho "Failed to restart MySQL" >> /var/log/mysql_monitor.logmail -s "MySQL Alert" $ALERT_EMAIL < /var/log/mysql_monitor.logfi
fi

设置定时任务

将脚本保存为/usr/local/bin/mysql_monitor.sh,添加执行权限:

chmod +x /usr/local/bin/mysql_monitor.sh

添加到crontab,每5分钟检查一次:

*/5 * * * * /usr/local/bin/mysql_monitor.sh

注意事项

  • 脚本中密码明文存储不安全,建议使用MySQL配置文件或环境变量
  • 生产环境建议添加更多错误处理和日志记录
  • 可以结合监控系统如Nagios、Zabbix实现更全面的监控
  • 根据实际MySQL配置调整连接参数

以上方法可以根据实际环境选择或组合使用,实现MySQL服务的有效监控。

http://www.dtcms.com/a/389196.html

相关文章:

  • 【Android】Jetpack Media3 如何播放音频文件 实现视频播放器
  • Android 开发 集成 uni 小程序,并实现相互通信
  • 【office】怎么设置第一章二级标题为1.1 1.2 1.3然后第二章为2.1 2.2 2.3这样子
  • JVM的垃圾回收机制(一次完整的GC流程)
  • 拥抱新一代 Web 3D 引擎,Three.js 项目快速升级 Galacean 指南
  • Linux 内核裁剪与功能扩展实验报告
  • Qt QVCandlestickModelMapper详解
  • LeetCode:20.旋转图像
  • 网络协议深度解析:从OSI七层模型到现代互联网通信的技术实战
  • 慈明学校以孝治家阳光家庭教育中心 学以致用践行以孝治家幸福万家
  • 开心实习之 深度学习之多层感知机
  • 前端构造数据格式及表格添加行
  • 深度学习-神经网络(上篇)
  • 【脑电分析系列】第18篇:传统机器学习在EEG中的应用 — SVM、LDA、随机森林等分类器
  • 理解长短期记忆神经网络(LSTM)
  • Kurt-Blender零基础教程:第2章:建模篇——第1节:点线面的选择与控制与十大建模操作
  • 鸿蒙5.0应用开发——V2装饰器@Monitor的使用
  • 八、Java-XML
  • 计算机在医疗领域应用的独特技术问题分析
  • HTB Intentions writeup(SQL二次注入也是注入)
  • 第一章 预训练:让模型“博闻强识”
  • 【数组】求两个匀速运动质点的相交或最小距离
  • 新手向:Python爬虫原理详解,从零开始的网络数据采集指南
  • OKZOO进军HealthFi:承接AIoT,引领Health-to-Earn
  • Halcon 相机标定
  • 腾讯混元发布集成翻译模型Hunyuan-MT-Chimera-7B,已开放体验
  • mybatis-plus扩展
  • 从x.ai到VSCode:一个AI编程助手的意外之旅
  • SQLite vs MySQL:核心SQL语法差异全面解析
  • 【每日算法】两数相加 LeetCode