[20201002]Tcpdumpsql.txt

lfree發表於2020-01-02

[20201002]Tcpdumpsql.txt

--//一網友需要跟蹤sql語句指令碼,我以前寫過一個(實際上改別人的程式碼):

# vi  /usr/local/bin/Tcpdumpsql
#! /bin/bash
/usr/sbin/tcpdump  -l -i eth0 -s 0 -A -nn src host $1 and dst port 1521 2>/dev/null |  tee -a /tmp/aa1 |sed -u -e  "s/^M/!/g;s/^E\.\..\{1,100\}//;s/\.*$//;s/^\.*//" | \
awk '{if (tolower($0) ~ "select" || tolower($0) ~ "update" ||  tolower($0) ~ "delete" ||tolower($0) ~ "alter" || tolower($0) ~ "insert" || $0 ~ "ORA-" ) {p=1;print} \
else if(p == 1 && $0 !~ "^[0-9][0-9]:") {print} else if ($0 ~ "^[0-9][0-9]:") {p=0}}'

--//簡單說明一下:
--//-i eth0 可以根據需要介面名.可以透過ifconfig -a.tcpdump -D確定.
--//我已經不記得這個軟體的出處,要我寫真心寫不出來,我自己甚至讀不懂程式碼.^_^
--//我僅僅記得我修改許多地方,僅僅抓取select,update,insert,delete的語句.如果with開頭的語句可能抓取不對.
--//^M表示0x0d.使用vim在windows下要使用ctrl+q ctrl+M輸入.在linux下要使用ctrl+v ctrl+m輸入.也就是copy and paste原始碼後,
--//要自己修改^M為對應字元.

--//實際上toad自帶一個SQL Tracker,使用它更加簡單.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2671563/,如需轉載,請註明出處,否則將追究法律責任。