帮我写一个shell脚本,监控5分钟内MySQL慢SQL产生的数量
时间: 2024-09-24 22:11:12 浏览: 44
Shell脚本中执行sql语句操作mysql的5种方法
当然可以,以下是一个简单的bash shell脚本来监控MySQL在5分钟内的慢查询次数:
```bash
#!/bin/bash
# 设置监控时间窗口为5分钟前
MINUTES_BACK=5
START_TIME=$(date -d "now - $MINUTES_BACK minutes" +%s)
# 检查MySQL的日志文件,通常位置在/var/log/mysql/error.log
MYSQL_LOG="/var/log/mysql/error.log"
# 使用grep查找包含'SLOW query'的行,并计算匹配的数量
SLOW_QUERIES=$(tail -n +$START_TIME $MYSQL_LOG | grep -c 'SLOW query')
echo "在过去的5分钟里,MySQL产生了${SLOW_QUERIES}次慢查询."
# 输出结果并清除旧日志条目,以便下一次监控
echo "Slow queries in the last 5 minutes:" > slow_queries_log.txt
tail -n +$START_TIME $MYSQL_LOG >> slow_queries_log.txt
阅读全文