tcpdump来抓取执行的sql语句
# tcpdump -n -nn -tttt -i eth1 -s 65535 'port 3306' -w tcpdump_mysql.ret -C 100
一个TCP包中包含多个mysql协议包,一个协议包就是一条mysql记录。
使用抓包工具开打tcpdump_mysql.ret 文件
使用tcpdump来抓取执行的sql语句。
# tcpdump -i eth1 -s 0 -l -w - dst port 3306 | strings
$sudo tcpdump -i eth0 -A -s 3000 port 3306 > ~/sql.log
考:http://www.davidodwyer.com/category/tags/tcpdump-mysql
#!/bin/bash
tcpdump -i eth0 -s 0 -l -w – dst port 3306 | strings | perl -e ‘
while(<>) { chomp; next if /^[^ ]+[ ]*$/;
if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL)/i) {
if (defined $q) { print “$q\n”; }
$q=$_;
} else {
$_ =~ s/^[ \t]+//; $q.=” $_”;
}
}’
可以根据自己的需要稍微改改,我在这里只增加了对 CALL 关键字。
保存在tcpdump.sh脚本中
tcpdump -i eth0 -s 0 -l -w out.log port 3306 | strings | perl -e '
#!/bin/bash
while(<>) { chomp; next if /^[^ ]+[ ]*$/;
if(/^(SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL)/i) {
if (defined $q) { print "$q/n" ; }
$q=$_;
} else {
$_ =~ s/^[ /t]+//; $q.=" $_" ;
}
}'
最新文章
- 什么是WebPack,为什么要使用它?
- [vivado系列]Zynq开发常用文档
- position:absolute绝对定位解读
- Jena语义Web开发101
- 年过三十,我为什么要学习ios 与安卓App 移动端技术
- Apache 配置多端口 多虚拟主机 局域网访问
- SDWebImage 原理及使用
- ostringstream的使用方法
- jquery实现菜单功能(单击展开或者关闭)-一般应用于后台
- [转]php 在各种web服务器的运行模式
- ubuntu下php编译
- webdriver
- LeetCode 257. Binary Tree Paths (二叉树路径)
- Oracle三层嵌套分页查询示例及rownum原理
- 机器学习中应用到的各种距离介绍(附上Matlab代码)
- UNIX环境高级编程——实现uid to name
- Docker安装nginx
- 【English】20190320
- <;WebGIS之OpenLayers全面解析>;示例程序运行问题
- 【LeetCode每天一题】Word Search(搜索单词)