remington_young 发表于 2018-10-11 09:54:03

mysqladmin awk 监控mysql qps-hanchengway

#!/bin/bash  
####该脚本用于 mysqladmin 输出实时的 qps 信息 频率为 1 s
  
#### example
  
#### sh mysql_status.sh 10.0.0.7 3306
  
#### sh status.sh 10.0.0.8 3306
  

  
mysqladmin -P$2 -uhooduser -p'xxxx' -h$1 -r -i 1 ext |\
  
awk -F"|" \
  
"BEGIN{ count=0; }"\
  
'{ if($2 ~ /Variable_name/ && ((++count)%20 == 1)){\
  
    print "----------|---------|--- MySQL Command Status --|----- Innodb row operation ----|-- Buffer Pool Read --";\
  
    print "---Time---|---QPS---|select insert update delete|read inserted updated deleted|   logical    physical";\
  
}\
  
else if ($2 ~ /Queries/){queries=$3;}\
  
else if ($2 ~ /Com_select /){com_select=$3;}\
  
else if ($2 ~ /Com_insert /){com_insert=$3;}\
  
else if ($2 ~ /Com_update /){com_update=$3;}\
  
else if ($2 ~ /Com_delete /){com_delete=$3;}\
  
else if ($2 ~ /Innodb_rows_read/){innodb_rows_read=$3;}\
  
else if ($2 ~ /Innodb_rows_deleted/){innodb_rows_deleted=$3;}\
  
else if ($2 ~ /Innodb_rows_inserted/){innodb_rows_inserted=$3;}\
  
else if ($2 ~ /Innodb_rows_updated/){innodb_rows_updated=$3;}\
  
else if ($2 ~ /Innodb_buffer_pool_read_requests/){innodb_lor=$3;}\
  
else if ($2 ~ /Innodb_buffer_pool_reads/){innodb_phr=$3;}\
  
else if ($2 ~ /Uptime / && count >= 2){\
  
printf(" %s |%9d",strftime("%H:%M:%S"),queries);\
  
printf("|%6d %6d %6d %6d",com_select,com_insert,com_update,com_delete);\
  
printf("|%6d %8d %7d %7d",innodb_rows_read,innodb_rows_inserted,innodb_rows_updated,innodb_rows_deleted);\
  
printf("|%10d %11d\n",innodb_lor,innodb_phr);\
  
}}'


页: [1]
查看完整版本: mysqladmin awk 监控mysql qps-hanchengway