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

通过shell脚本检测MySQL服务信息

通过shell脚本检测MySQL服务信息

今天改了一版脚本,对于MySQL的基本信息的获取有了一个相对比较清晰的收集方式。

我简单解释下脚本。

整体是分为两部分

第一部分是通过系统层面来解析MySQL的基本信息,方式是通过ps -ef|grep mysql得到的信息来解析。

第二部分是通过登录MySQL得到的信息,基本信息包括server_id,log_bin等。

脚本内容如下:

ps -ef|grep mysql |grep -w mysqld|grep -v grep |awk -F'--' '{for (i=2;i<=NF;i++) {printf $i" "}printf " "}' > info_from_sys.tmp

function get_info_from_sys()

{

while read line

do

array=$line

port_str='port='

socket_str='socket='

for arr_tmp in ${array[*]}; do

if [[ $arr_tmp =~ $port_str ]];then

port_tmp=`echo $arr_tmp|sed 's/port=//g'`

fi

if [[ $arr_tmp =~ $socket_str ]];then

socket_tmp=`echo $arr_tmp|sed 's/socket=//g'`

fi

done

if [ -z "$port_tmp" ];then

port_tmp=3306

fi

echo $port_tmp $socket_tmp >> info_from_sys.lst

done < info_from_sys.tmp

}

function get_info_from_db()

{

while read line

do

port=`echo $line|awk '{print $1}'`

#echo $port

/usr/local/mysql/bin/mysql -udba_admin -p$dec_passwd -h127.0.0.1 -P${port} -N -e "select @@port,@@log_bin,@@innodb_buffer_pool_size,@@gtid_mode,@@datadir,@@character_set_server,@@server_id,version();" >> info_from_db.lst

# echo $port_tmp $socket_tmp

done < info_from_sys.lst

}

function decrypt_passwd

{

tmp_passwd=$1

dec_passwd=`echo $tmp_passwd|base64 -d`

}

##MAIN

get_info_from_sys

sec_password='RHB6TEST1d1c5TTEzZGIwSgo=' --这个是数据库密码的base64加密串,可以根据需求来定制

dec_passwd=''

decrypt_passwd $sec_password

get_info_from_db

sort info_from_db.lst > info_from_db.tmp

sort info_from_sys.lst > info_from_sys.tmp

rm info_from_db.lst info_from_sys.lst

join -j 1 info_from_sys.tmp info_from_db.tmp

最后送波福利。现在加群即可获取Java工程化、高性能及分布式、高性能、高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点高级进阶干货的直播免费学习权限及领取相关资料,群号:835638062 点击链接加入群聊【Java高级架构】:https://jq.qq.com/?_wv=1027&k=5S3kL3v

相关文章:

  • 【leetcode】53. 最大子序和(Maximum Subarray)
  • Percona-xtrabackup 使用详解与原理
  • 大数据——基础概念
  • 用户数量高达3人的分布式系统
  • 多研究些架构,少谈些框架——一名阿里架构师的笔记
  • 深入浅出Node.js
  • unix下命令窗分屏工具
  • linux防火墙操作随笔记录
  • CF1060E Sergey and Subway(点分治)
  • CentOS 7更改yum源与更新系统
  • Python基本数据类型集合、格式化、函数
  • 印章与合同管理一体化:杜绝实体印章与纸质合同隐患
  • 微软正式发布Azure Functions 2.0
  • 微信小程序所带来的机会
  • CLTPHP5.0发布
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • [译] 怎样写一个基础的编译器
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • ➹使用webpack配置多页面应用(MPA)
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Angular Elements 及其运作原理
  • httpie使用详解
  • HTTP中GET与POST的区别 99%的错误认识
  • js如何打印object对象
  • October CMS - 快速入门 9 Images And Galleries
  • React Native移动开发实战-3-实现页面间的数据传递
  • supervisor 永不挂掉的进程 安装以及使用
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 关于for循环的简单归纳
  • 关于springcloud Gateway中的限流
  • 如何使用 JavaScript 解析 URL
  • 事件委托的小应用
  • 手写双向链表LinkedList的几个常用功能
  • 移动端唤起键盘时取消position:fixed定位
  • 用Canvas画一棵二叉树
  • 怎么把视频里的音乐提取出来
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • zabbix3.2监控linux磁盘IO
  • 阿里云ACE认证学习知识点梳理
  • 大数据全解:定义、价值及挑战
  • ​力扣解法汇总946-验证栈序列
  • #ifdef 的技巧用法
  • #Linux(权限管理)
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (02)vite环境变量配置
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (30)数组元素和与数字和的绝对差
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (Matlab)使用竞争神经网络实现数据聚类
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (待修改)PyG安装步骤
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (附源码)计算机毕业设计ssm-Java网名推荐系统