[MySQL FAQ]系列 -- 利用tcpdump简易抓取MySQL Query 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 关键字。

评论

你这是bash脚本嘛 怎么看怎么是perl

这个是在bash脚步中使用了perl