龙空技术网

将巡检结果输出到文件,存储到 MySQL 数据库,通过邮件发送提醒

明日人生vlog 186

前言:

而今小伙伴们对“mysql查询结果输出到文件”大致比较注意,咱们都需要剖析一些“mysql查询结果输出到文件”的相关文章。那么小编也在网摘上收集了一些有关“mysql查询结果输出到文件””的相关知识,希望小伙伴们能喜欢,同学们一起来学习一下吧!

1、安装mysql

yum -y install mariadb-server

systemctl start mariadb

systemctl status mariadb

mysql -u root -p

# 配置root密码

use mysql;

UPDATE user SET password=password('abc123') WHERE user='root';

SET password for 'root'@'localhost'=password('abc123');

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'abc123' WITH GRANT OPTION;

# 创建数据库表

create database check_result;

#这里注意主键的大小,跟你的数据长度挂勾。安实际情况填写

CREATE TABLE `check_result`(

`date` timestamp,

`time` time,

`cpu_usage` varchar(255),

`memory_usage` varchar(255),

`disk_usage` varchar(255),

`network_status` varchar(255)

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、安装sendmail

yum -y install sendmail mailx

vim /etc/mail.rc

set from=xxx@163.com

set smtp=smtp.163.com

set smtp-auth-user=xxx@163.com

set smtp-auth-password=xxx

set smtp-auth=login

3、shell脚本

cat check_system.sh

#!/bin/bash

# 巡检项

check_list=(

"cpu"

"memory"

"disk"

"network"

)

# 巡检日期和时间

date=$(date "+%Y-%m-%d")

time=$(date "+%H:%M:%S")

# 输出文件路径

output_file="/tmp/output_file_${date}.txt"

# MySQL 配置

mysql_host="localhost"

mysql_user="root"

mysql_password="abc123"

mysql_database="check_system"

# 邮件配置

mail_from="xxx@163.com"

mail_to="xxx@qq.com"

mail_subject="Linux 巡检报告 ${date} ${time}"

mail_body="请查看附件"

# 巡检 CPU 使用率

cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')

# 巡检内存使用情况

memory_usage=$(free | awk '/Mem/{printf("%.2f%"), $3/$2*100}')

# 巡检磁盘空间使用情况

disk_usage=$(df -h / | awk '/\//{print $(NF-1)}')

# 巡检网络连接情况

network_status=$(ping -c 1 > /dev/null && echo "连接正常" || echo "连接失败")

# 将巡检结果输出到文件

echo "巡检日期:${date} 巡检时间:${time}" > ${output_file}

echo "CPU 使用率:${cpu_usage}%" >> ${output_file}

echo "内存使用率:${memory_usage}" >> ${output_file}

echo "磁盘空间使用情况:${disk_usage}" >> ${output_file}

echo "网络连接情况:${network_status}" >> ${output_file}

# 将巡检结果存储到MySQL数据库

mysql -h${mysql_host} -u${mysql_user} -p${mysql_password} ${mysql_database} \

-e "INSERT INTO check_result (date, time, cpu_usage, memory_usage, disk_usage, network_status) VALUES ('${date}', '${time}', '${cpu_usage}', '${memory_usage}', '${disk_usage}', '${network_status}')"

# 发送邮件提醒

echo ${mail_body} | mail -s "${mail_subject}" -a ${output_file} ${mail_to}

你可以根据实际情况修改上述脚本中的配置信息,然后将其保存为一个 shell 脚本文件,例如 `check_system.sh`,然后在 Linux 系统中运行该脚本进行巡检。可以通过设置定时任务,定期执行该脚本。例如,可以在 crontab 中添加以下定时任务:

0 0 * * * /bin/bash /opt/check_system.sh

标签: #mysql查询结果输出到文件