ssh를 사용하여 원격으로 서버 인터페이스에서 트래픽을 캡처하여 Tcpdump를 제어하는 쉘 스크립트에 명령을 보냈습니다.캡처 한 수백만 개의 패킷을보고 한 경우에도 Tcpdump 저장된 파일이 비어 있습니다.
#!/bin/bash
# Script to Start/Stop TCP
# Usage: ./ControlTCPdump.sh start|stop [filename]
CONSOLE_OUTPUT="tcpdump$(date +%m%d).console"
HOST_NAME=`hostname`
#Default filename:
if [ "$2" = "" ]; then
FILENAME="traffic.dmp"
else
FILENAME=$2
fi
if [ "$1" = start ]; then
echo $(date) $FILENAME >> $CONSOLE_OUTPUT
if [ "" = "$(pidof tcpdump)" ]; then
nohup tcpdump -s 96 -w $FILENAME -i em2 -n tcp > /dev/null &>> $CONSOLE_OUTPUT &
echo [$HOST_NAME] TCPdump is started\!
else
echo [$HOST_NAME] There is runnung process. Kill All\!
killall -q tcpdump #Quiet, don't talk
sleep 1
if [ "" = "$(pidof tcpdump)" ]; then
echo [$HOST_NAME] Restarting TCPdump...
nohup tcpdump -s 96 -w $FILENAME -i em2 -n tcp >/dev/null &>> $CONSOLE_OUTPUT &
echo [$HOST_NAME] TCPdump is started\!
else
echo [$HOST_NAME] Error\! Cannot kill them\!
exit 0
fi
fi
else
if [ "$1" = stop ]; then
TD=`pidof tcpdump`
if [ -n "$TD" ]; then
kill "$TD"
fi
sleep 1
if [ "" = "$(pidof tcpdump)" ]; then
echo [$HOST_NAME] TCPdump is stopped\!
else
echo [$HOST_NAME] Error\! Cannot kill them\!
exit 0
fi
else
echo [$HOST_NAME] Syntax error\!
exit 0
fi
fi
보고서에는 이미 수천 개의 패킷이 포착되었다고합니다. 그러나 tcpdump cap 파일을 볼 때 비어 있으며 tcptrace로 읽을 때 문제가 있습니다.
...
-rw-r--r--. 1 root root 105206180 Mar 25 16:37 Traffic05.dmp
-rw-r--r--. 1 root root 117855276 Mar 25 16:39 Traffic06.dmp
-rw-r--r--. 1 root root 109911288 Mar 25 16:40 Traffic07.dmp
-rw-r--r--. 1 root root 121505444 Mar 25 16:42 Traffic08.dmp
-rw-r--r--. 1 root root 110303300 Mar 25 16:43 Traffic09.dmp
-rw-r--r--. 1 root root 120444026 Mar 25 16:45 Traffic10.dmp
-rw-r--r--. 1 root root 98545664 Mar 25 16:46 Traffic11.dmp
-rw-r--r--. 1 root root 0 Mar 25 16:48 Traffic12.dmp
-rw-r--r--. 1 root root 0 Mar 25 16:50 Traffic13.dmp
-rw-r--r--. 1 root root 0 Mar 25 16:51 Traffic14.dmp
-rw-r--r--. 1 root root 0 Mar 25 16:53 Traffic15.dmp
-rw-r--r--. 1 root root 0 Mar 25 16:54 Traffic16.dmp
...
이 언젠가는 일을 언젠가는하지 않았다 :
...
Mon Mar 25 23:25:48 CET 2013 CapturedTraffic201303252230/Traffic30.dmp
tcpdump: listening on em2, link-type EN10MB (Ethernet), capture size
96 bytes 1403831 packets captured 1403831 packets received by filter 0
packets dropped by kernel Mon Mar 25 23:27:28 CET 2013
CapturedTraffic201303252230/Traffic31.dmp tcpdump: listening on em2,
link-type EN10MB (Ethernet), capture size 96 bytes 1378692 packets
captured 1378692 packets received by filter 0 packets dropped by
kernel
...
현상이 하나 (I는 "LS -l"을 사용하여 파일 크기를 보려면)과 같다. 전에 이런 종류의 문제가 발생한 사람이 있습니까? 도와 줘서 고마워.
디스크가 꽉 찼습니까? – themel
디스크가 꽉 찼지 만 tcpdump가 알려주지 않았습니다. 나는 tshark로 바꾼다. 그리고 그것은 공간이 떠났다라고 나에게 이야기했다. 고마워요. –