tcpdumpでSQL要求を抜き取る方法 tcpdumpでSQL要求を抜き取る方法 MySQLやOracleなどのDBサーバ上で、以下のスクリプトを実行する事により、外部からのSQL要求(SELECT文等)を表示する事が出来ます。 eth0は実際の環境に合わせて変更しましょう。 #!/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.=" $_"; } }'