2012-12-24 129 views
1

我正在寫一個linux bash腳本,我想在eth0上捕獲一段時間並將其保存到某個文件。另外我希望捕獲結束後wireshark應該關閉,腳本中的其餘命令應該按順序執行。我如何實現它。下面給出了一個非常簡單的例子。但是它並不是從主要腳本的主角出來的。請幫我實現這一點。如何在bash腳本中使用wireshark

#!/bin/bash 

xterm -e wireshark -i eth0 -a duration:20 -k > ./capture1 

sleep 10 

echo " came back to main window " 

xterm killall -9 wireshark 
+0

做任何事情似乎backgrounding wireshark應該做你正在尋找的東西。請參閱:http://unix.stackexchange.com/questions/15985/non-blocking-bash-command – Oren

+2

試試'tcpdump'也許? –

+0

感謝您的回覆。我現在也只是嘗試背景。但不知何故,我無法將我的捕獲數據保存到文件中。我已經使用wireshark使用命令打開捕獲:sudo wireshark -i eth0 -Q -a持續時間:50 -k和 現在我正在嘗試使用以下命令將捕獲複製到名爲capture1.cap的文件:dumpcap -i eth0 - w capture1.cap 但它給了我第二個錯誤:捕獲將被保存到的文件(「capture1.cap」)無法打開:權限被拒絕。 但我沒有看到文件capture1的任何權限問題。你能告訴我我錯過了什麼嗎?請... – user1497818

回答

0

嘗試tshark的

echo "starting capture for 20 seconds" 

tshark -i eth0 -a duration:20 -w capture1.pcap 

echo "done" 

tshark的是Wireshark的文本版本..你不必擔心它試圖與GUI

+0

我試過這個,我得到了下面的錯誤:tshark:捕獲將被保存到的文件(「capture1.pcap」)無法打開:權限被拒絕。 – user1497818