通过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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
理解大型分布式网站你应该知道这些概念
I/O优化 增加缓存,减少磁盘的访问次数。 优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。 设计合理的磁盘存储数据块,以及访问这些数据库的策略,这是在应用层面考虑的。例如,我们可以给存放的数据设计索引,通过寻址索引来加快和减少磁盘的访问量,还可以采用异步和非阻塞的方式加快磁盘的访问速度。 应用合理的RAID策略提升磁盘I/O。 Web前端调优 减少网络交互的次数(多次请求合并) 减少网络传输数据量的大小(压缩) 尽量减少编码(尽量提前将字符转化为字节,或者减少从字符到字节的转化过程。) 使用浏览器缓存 减少Cookie传输 合理布局页面 使用页面压缩 延迟加载页面 CSS在最上面,JS在最下面 CDN 反向代理 页面静态化 异地部署 服务降级(自动优雅降级) 拒绝服务和关闭服务 幂等性设计 有些服务天然具有幂等性,比如讲用户性别设置为男性,不管设置多少次,结果都一样。但是对转账交易等操作,问题就会比较复杂,需要通过交易编号等信息进行服务调用有效性校验,只有有效的操作才能继续执行。 (注:幂等性是系统的接口对外一种承诺(而不是实现), 承诺...
- 下一篇
什么是软件架构
本文探讨什么是「软件架构」,并对其下个定义! 决策or组成? 如果你去google一下「什么是软件架构」,你会看到各种各样的定义!不过大致可分为「决策」论和「组成」论! 其中一个比较著名的「决策」论的定义是Booch,Rumbaugh和Jacobson于1999年提出的: 架构就是一系列重要的决策,这些决策涉及软件系统的组织、组成系统的结构化元素及其接口的选择、元素之间协作时特定的行为、结构化元素和行为元素形成更大子系统的组合方式以及引导这一组织(也就是这些元素及其接口)、他们之间的协作以及组合(架构风格)。 而「组成」论中最受推崇的是SEI(Software Engineering Institute)的Len Bass等人提出的定义: The software architecture of a program or computing system is the structure or structures of the system,which comprise software elements,the externally visible properties of th...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Mario游戏-低调大师作品
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装