用sed语法将pt-query-digest分析的mysql慢查询转换成html页面,简单转换但是看着方便多了

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

主要练习sed的部分高级语法和正则匹配,不过其实用perl语法更方便。主要sed语法如下

#处理pt-query工具分析后的mysql慢查询

#头部 尾部

#!/bin/bash

echo "used: sh chsqltohtml.sh abc.log,it will create abc.html to the current path"

SLOWLOG=$1

INDEXHTML=`echo $SLOWLOG|cut -d . -f 1`.html

echo $SLOWLOG

echo ${INDEXHTML}

sed  -e '1 s/^$/<html>\n\t<head><meta charset="gbk" \/>\n<title>'$SLOWLOG'慢查询<\/title> \n\t<\/head>\n\t\t<body bgcolor="#87CEEB">\n\t\t<h3 style="color:green;font-size:40px;text-align:cen

ter;"><i>'$SLOWLOG'慢查询<\/i><\/h3>\n<hr color=green>\n<table border="1", bgcolor="#9ACD32">\n<tr><td> /' -e '$a\<hr color=red>\n</body>\n</html> ' -e 's/^#/<br>#/'   ${SLOWLOG} >${INDEXHTML}


sed -i -e    '/^<br># Attribute/i\</td></tr></table>\n<table border="1">'  ${INDEXHTML}

sed -i -e    '/^<br># Query size/a\</table>'   ${INDEXHTML}

sed -i -e    '/^<br># MISC/i\</table>'    ${INDEXHTML}

sed -i -e    '/^<br># Query 1/i\</table>'  ${INDEXHTML}

#sed -i -e    's/^$/<hr color=red>/' ${INDEXHTML}

sed -i -e    '/^<br># Profile/i\<hr color=red>\n' ${INDEXHTML}


#替换

sed -i  -e 's/<br># Exec time/<tr><td>Exec_time/g'  -e 's/<br># Lock time/<tr><td>Lock_time/g'  -e 's/<br># Rows sent/<tr><td>Rows_sent/g' -e 's/<br># Rows examine/<tr><td>Rows_examine/g'  -

e 's/<br># Query size/<tr><td>Query_size/g'  -e 's/<br># Rank Query ID/<table border="1">\n<tr><td>Rank Query ID/g'  ${INDEXHTML} 

#1-20个空格

sed -i -e '/Exec_time/s/[ ]\{1,20\}/<\/td><td>/g'  -e '/Exec_time/s/$/<\/td>/g' ${INDEXHTML}

sed -i -e '/Lock_time/s/[ ]\{1,20\}/<\/td><td>/g'  -e '/Lock_time/s/$/<\/td>/g' ${INDEXHTML}

sed -i -e '/Rows_sent/s/[ ]\{1,20\}/<\/td><td>/g'  -e '/Rows_sent/s/$/<\/td>/g' ${INDEXHTML}

sed -i -e '/Rows_examine/s/[ ]\{1,20\}/<\/td><td>/g'  -e '/Rows_examine/s/$/<\/td>/g' ${INDEXHTML}

sed -i -e '/Query_size/s/[ ]\{1,20\}/<\/td><td>/g'  -e '/Query_size/s/$/<\/td>/g' ${INDEXHTML}

sed -i -r 's/<tr><td>(Rank\s+)(Query ID\s+)(Response\s+)(time\s+)(Calls\s+)(R\/Call\s+)(V\/M\s+)(Item)/<tr><td>等级<\/td><td>Query ID<\/td><td>响应时间<\/td><td>时间占比<\/td><td>执行次数<\/

td><td>平均响应时间<\/td><td>\7<\/td><td>语句<\/td>/g'  ${INDEXHTML}

#删除多余===

sed -i '/=\{3,20\}/d' ${INDEXHTML} 

sed -i 's/<br># Attribute/<tr><td>Attribute/g' ${INDEXHTML}

sed -i -e '/Attribute/s/[ ]\{1,20\}/<\/td><td>/g'  -e '/Attribute/s/$/<\/td>/g' ${INDEXHTML}

#sed -i -e '/MISC 0xMISC/s/$/<\/td>\n<\/table>/g' ${INDEXHTML}

###超链接

sed -i -r 's/^<br>#(\s+[0-9]{1,2}\s+)(0x[A-Z0-9]+)(\s+[0-9]{1,10}\.[0-9]{1,4}\s+)([0-9]{1,3}\.[0-9]%\s+)([0-9]{1,9}\s+)([0-9]{1,10}\.[0-9]{1,4}\s+)([0-9]{1,9}\.+[0-9]*\s+)(.+)/\<tr><td>\1\<\

/td><td><a href="#\2\">\2<\/a>\<\/td><td>\3\<\/td><td>\4\<\/td><td>\5\<\/td><td>\6\<\/td><td>\7\<\/td><td>\8\<\/td>/g' ${INDEXHTML}

sed -i -r 's/<br># Query(\s+[0-9]+:\s+)([0-9]+\.[0-9]{1,4}\s+)QPS,(\s+[0-9]+\.[0-9]+).*(0x[A-Z0-9]+)(\s+at byte\s+[0-9]+)/\<hr color=red>\n<br># Query\1\2\3\x concurrency, ID <a name="\4\">\

4\<\/a>\5/g' ${INDEXHTML}

echo "over"



b78a3c425c085100b10741d89ae761bc02d49aa3



相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
大厂面试官:聊下 MySQL 慢查询优化、索引优化?
MySQL慢查询优化、索引优化,是必知必备,大厂面试高频,本文深入详解,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验分享。
大厂面试官:聊下 MySQL 慢查询优化、索引优化?
|
2天前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
27天前
|
存储 SQL 关系型数据库
【MySQL基础篇】MySQL约束语法
文章介绍了MySQL中表的约束概念,包括非空、唯一、主键、默认和外键约束,以及如何在创建和修改表时指定这些约束。外键约束用于保持数据的一致性和完整性,文章通过示例展示了添加、删除外键的语法,并讨论了不同的删除/更新行为,如CASCADE和SETNULL。
【MySQL基础篇】MySQL约束语法
|
27天前
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
1月前
|
缓存 关系型数据库 MySQL
MySQL 索引优化以及慢查询优化
通过本文的介绍,希望您能够深入理解MySQL索引优化和慢查询优化的方法,并在实际应用中灵活运用这些技术,提升数据库的整体性能。
79 18
|
1月前
|
缓存 关系型数据库 MySQL
MySQL 索引优化以及慢查询优化
通过本文的介绍,希望您能够深入理解MySQL索引优化和慢查询优化的方法,并在实际应用中灵活运用这些技术,提升数据库的整体性能。
75 7
|
1月前
|
缓存 关系型数据库 MySQL
MySQL 索引优化与慢查询优化:原理与实践
通过本文的介绍,希望您能够深入理解MySQL索引优化与慢查询优化的原理和实践方法,并在实际项目中灵活运用这些技术,提升数据库的整体性能。
102 5
|
2月前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
91 7
|
2月前
|
SQL 关系型数据库 MySQL
【赵渝强老师】MySQL的慢查询日志
MySQL的慢查询日志用于记录执行时间超过设定阈值的SQL语句,帮助数据库管理员识别并优化性能问题。通过`mysqldumpslow`工具可查看日志。本文介绍了如何检查、启用及配置慢查询日志,并通过实例演示了慢查询的记录与分析过程。
252 3
|
2月前
太便利了 !通义灵码方便生成html页面
太便利了 !通义灵码方便生成html页面
98 0