tshark 명령을 반복하고 1분마다 출력 파일 이름을 변경하는 스크립트

tshark 명령을 반복하고 1분마다 출력 파일 이름을 변경하는 스크립트

저는 Unix를 처음 접해서 60초마다 tshark 명령을 반복할 수 있는 빠른 코드를 요청하고 싶습니다.

내가 실행하고 싶은 명령은 다음과 같습니다.

 tshark -z io,stat,1,tcp.port==80,tcp.port==443 -a duration:60  > filename.txt

이 명령을 루프에 넣고 출력 파일 이름이 변경될 때마다 60초마다 다시 실행해야 합니다. 파일 이름을 지정하는 데 시간과 날짜를 사용하거나 숫자 단계 카운터를 사용하는 것이 더 쉽습니다.

어떤 제안이 있으십니까?

감사해요

답변1

게시한 명령을 실행하는 데 이미 약 60초가 걸리므로 다음을 수행할 수 있습니다.

while true; do tshark ... > "tshark-$(date +%F-%T).txt"; done

그러면 다음과 같은 결과가 생성됩니다 tshark-2017-02-16-11:44:22.txt.

답변2

이 명령을 루프에서 반복하면 한 번의 tshark 종료와 다음 tshark 시작 사이에 전송되고 패킷을 캡처할 준비가 된 패킷이 누락됩니다.

어쩌면 더 나은 접근 방식은 한 번 사용 dumpcap하고 매분마다 새 파일을 생성하도록 지시하는 것입니다. 그런 다음 필요할 때 이러한 덤프에서 통계를 가져옵니다. 원시 덤프 파일을 사용하면 해당 파일에서 가능한 모든 정보를 얻을 수 있습니다.

그것은 다음과 같습니다:

dumpcap -b duration:60 -w dump.pcap

그러면 이라는 파일이 생성됩니다 dump_00002_20170224130408.pcap.

그런 다음 필요에 따라 통계를 가져옵니다.

tshark -z io,stat,1,tcp.port==80,tcp.port==443 -r dump_00002_20170224130408.pcap

관련 정보