监控数据库表单生成量脚本(配置邮箱报警)

写一个shell脚本来检测某个数据库的表单生成量。

#!/bin/bash
#数据库监控表单脚本
#2023-5-12

# 数据库连接信息
DB_HOST="localhost"
DB_PORT="3306"
DB_NAME="your_database_name"
DB_USER="your_database_user"
DB_PASS="your_database_password"

# 表单信息
TABLE_NAME="your_table_name"
EXPECTED_ROWS=5000

# 获取当前日期
TODAY=$(date +%Y-%m-%d)

# 查询当天生成的数据量
QUERY="SELECT COUNT(*) FROM ${TABLE_NAME} WHERE DATE(create_time) = '${TODAY}'"
ROWS=$(mysql -h${DB_HOST} -P${DB_PORT} -u${DB_USER} -p${DB_PASS} ${DB_NAME} -se "${QUERY}")

# 判断是否达到期望值
if [ ${ROWS} -lt 4500 ] || [ ${ROWS} -gt 5000 ]; then
  echo "警告:${TABLE_NAME} 表单生成数据量异常,当前生成量为 ${ROWS} 条"
fi

使用方法:

将脚本保存为一个文件(比如 monitor.sh);

修改脚本中的数据库连接信息、表单信息和期望值信息;

将脚本添加到定时任务中,每天执行一次即可。

在终端中打开 crontab 文件

crontab -e

编写定时任务

在 crontab 文件中,你可以添加如下的一行,以创建一个每天运行一次的定时任务:

0 0 * * * /mnt/shell/monitor.sh

0 0 * * * 表示该任务将在每天的午夜(即 0 点)执行,/path/to/monitor.sh 是要执行的脚本的完整路径。你需要将该路径替换为你实际的 monitor.sh 脚本所在的完整路径。

保存并退出 crontab 文件

在你完成定时任务的编写后,输入 CTRL + X 以退出 crontab 文件编辑。

在保存修改之前,系统将要求你确认是否保存,这时可以输入 y 回车来保存修改。

你还可以通过 crontab -l 命令来查看当前系统中已经存在的定时任务。如果你希望暂停某个定时任务,可以使用 crontab -r 命令,将其从系统中移除。

#!/bin/bash

# 设置需要检测的日期时间
today=$(date "+%Y-%m-%d")
hour=$(date "+%H")

# 获取数据库表单的生成量
count=$(mysql -uroot -ppassword -e "SELECT COUNT(*) FROM table WHERE date='$today' AND hour='$hour';")

# 设置报警阈值
threshold_min=4500
threshold_max=5000

# 判断生成量是否超过阈值
if [ $count -lt $threshold_min ] || [ $count -gt $threshold_max ]; then
  # 发送邮件报警
  echo "Attention! Today's database form count is $count, which is less than $threshold_min or greater than $threshold_max." | mutt -s "Database Form Count Alert" -- [email protected]
fi

设置邮箱报警。

猜你喜欢

转载自blog.csdn.net/m0_72264240/article/details/130637129
今日推荐