我想從一個shell腳本中的tcpdump中獲取一些數字並打印該數字。在bash腳本里面運行tcpdump
這裏是我的腳本
while true
do
{
b=`tcpdump -n -i eth1 | awk -F'[, ]' '{print $10}'`
echo $b
}
done
當我執行這個腳本,我得到這個
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
有什麼特別的,我需要做捕捉shell腳本里面tcpdump的O/P?
詳細說明,我試圖捕獲或打印每當確認數大於特定值。例如,如果我這樣做,tcpdump -n -i eth1'(tcp [tcpflags] == tcp-ack)'| awk -F'[,]''{print $ 10}',它只顯示確認號碼。我真正想做的是查找我的ack號碼是否等於1024,並打印一條消息,例如找到ack號碼。這是我的目標,並不確定我如何在live tcpdump流程中實現這一目標。 – user238021
啊,如果你這樣限制,你更有可能得到一致的結果。在那種情況下,我會認爲'while read'循環是最好的方法。 –
謝謝戈登。我正在嘗試這樣的事情。基本上,打印19000到20000之間的數字。tcpdump -n -i eth1'(tcp [tcpflags] == tcp-ack)和(src host 192.168.2.1)'| awk -F'[,]''{print $ 10}'|同時閱讀b;做echo $ b | awk'{if($ 1> 19000 && $ 1 <20000)print $ 1}';完成 – user238021