# 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.=" $_" ;
}
}'

最新文章

  1. 什么是WebPack,为什么要使用它?
  2. [vivado系列]Zynq开发常用文档
  3. position:absolute绝对定位解读
  4. Jena语义Web开发101
  5. 年过三十,我为什么要学习ios 与安卓App 移动端技术
  6. Apache 配置多端口 多虚拟主机 局域网访问
  7. SDWebImage 原理及使用
  8. ostringstream的使用方法
  9. jquery实现菜单功能(单击展开或者关闭)-一般应用于后台
  10. [转]php 在各种web服务器的运行模式
  11. ubuntu下php编译
  12. webdriver
  13. LeetCode 257. Binary Tree Paths (二叉树路径)
  14. Oracle三层嵌套分页查询示例及rownum原理
  15. 机器学习中应用到的各种距离介绍(附上Matlab代码)
  16. UNIX环境高级编程——实现uid to name
  17. Docker安装nginx
  18. 【English】20190320
  19. &lt;WebGIS之OpenLayers全面解析&gt;示例程序运行问题
  20. 【LeetCode每天一题】Word Search(搜索单词)

热门文章

  1. ECMAScript 5正式发布
  2. 在ecshop商品详情页显示供货商
  3. poj 1144 Network
  4. 由 OR 引起的死循环
  5. bzoj4038: 医疗援助
  6. Kafka Offset Storage
  7. CSS禅意
  8. C++的数据类型
  9. cisco telnet会话SESSION管理及相关Dynagen配置文件
  10. elevation 和 translationZ的区别