AWK简单入门

根据我们的mysql服务器优化大体思路,现在我们的主要任务是『通过脚本,刷新观察status,是否有周期性故障或波动』

mysql> show status #查看mysql状态

返回200多行,我们注重看下面几个:

Queries             #当前已经发生了多少次查询
Threads_connected   #有几个线程过来连接了
Threads_running     #有几个线程正在工作

====================================
AWK脚本
AWK是一个简便的直译式的文本处理工具,擅长处理多行多列数据。
处理过程:
While(还有下一行){
1.读取下一行,并把下一行赋给 0 1, 2... N变量
2.用指定的命令来处理该行
}
如果处理1行数据?
答:分两部分,pattern(条件)+ action(处理动作)

演示:
写一个 score.txt

name    yw  shuxue
lisi    3   12
ww      4   23
lucy    5   89
[root@localhost ~]# awk 'printf("%s\n",$0)'   score.txt
name    yw  shuxue
lisi    3   12
ww      4   23
lucy    5   89
[root@localhost ~]# awk 'printf("%s\n",$1)'   score.txt
name    
lisi    
ww      
lucy    
[root@localhost ~]# awk 'printf("%s\n",$2)'   score.txt
yw
3
4
5
只要"l"开头的
#awk '/l/{printf("%s\n",$0)}' score.txt
lisi    3   12
lucy    5   89

如何借助awk统计mysql状态中的的Queries哪一行数量?

[root@localhost ~]#mysqladmin -uroot ext|awk '/Queries/{printf("%d\n",$4)}'

这里写图片描述
那么如何统计Queries、Threads_connected、Threads_running这三行呢?

mysqladmin -uroot ext|awk '/Queries/{printf("%d ",$4)}/Threads_connected/{printf("%d ",$4)}/Threads_running/{printf("%d\n",$4)}'

这里写图片描述

如果我们把这个脚本每秒刷新一次,并且把结果记录下来,就能不管的观察mysql的状态了

awk还支持变量定义

mysqladmin -uroot -padmin888 ext|awk '/Queries/{q=$4}/Threads_connected/{c=$4}/Threads_running/{r=$4}END{printf("%d %d %d\n",q,c,r)}'

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值