![tshark 명령을 반복하고 1분마다 출력 파일 이름을 변경하는 스크립트](https://linux55.com/image/105698/tshark%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EB%B0%98%EB%B3%B5%ED%95%98%EA%B3%A0%201%EB%B6%84%EB%A7%88%EB%8B%A4%20%EC%B6%9C%EB%A0%A5%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EB%B3%80%EA%B2%BD%ED%95%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8.png)
저는 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