请用shell帮我写一个mysql数据库巡检脚本
时间: 2024-05-02 14:16:21 浏览: 123
shell脚本中和mysql数据库交互.pdf
以下是一个简单的MySQL数据库巡检脚本,使用shell编写:
```bash
#!/bin/bash
# 定义数据库登录信息
DB_USER="username"
DB_PASS="password"
DB_HOST="localhost"
DB_PORT="3306"
# 检查MySQL服务是否正常运行
MYSQL=$(which mysql)
if [ -z "$MYSQL" ]; then
echo "MySQL is not installed!"
exit 1
fi
# 连接数据库
DB_CONN="$MYSQL --user=$DB_USER --password=$DB_PASS --host=$DB_HOST --port=$DB_PORT"
# 执行巡检语句
$DB_CONN -e "SHOW DATABASES;"
$DB_CONN -e "SELECT VERSION();"
$DB_CONN -e "SHOW VARIABLES LIKE '%max_connections%';"
$DB_CONN -e "SHOW FULL PROCESSLIST;"
$DB_CONN -e "SHOW ENGINE INNODB STATUS\G"
# 获取MySQL的错误日志文件路径
ERROR_LOG=$(grep -i error /etc/my.cnf | awk -F= '{print $2}' | sed 's/^[[:space:]]*//g')
# 检查错误日志文件是否存在
if [ -f "$ERROR_LOG" ]; then
# 查看最近的错误日志
tail -n 100 "$ERROR_LOG"
else
echo "Error log not found!"
fi
```
此脚本连接 MySQL 服务器并执行几个巡检语句,包括显示数据库列表、MySQL版本、最大连接数、全进程列表以及 InnoDB 引擎状态。接着检查 MySQL 错误日志文件是否存在,并输出最近的 100 条错误日志。请根据实际情况修改登录信息和巡检语句。
阅读全文