특정 포트에 도착할 키워드가 포함된 특정 HTTP 요청을 기록하고 싶습니다. tcpflow
잘 작동하지만 필터링된 결과를 출력 파일에 쓸 수 없습니다.
이 명령이 왜 완벽하게 작동하고("Detect"가 제가 찾고 있는 키워드임) 필요한 행만 표시하는지 이해가 되지 않습니다.
tcpflow -p -c -i eth0 port 80 | grep detect
동시에, 이것은 전혀 작동하지 않습니다. log.txt 파일이 비어 있습니다...
tcpflow -p -c -i eth0 port 80 | grep detect > log.txt
이것이 바이너리 출력과 관련이 있는 것 같은데요?
이렇게 하면 작동하지만 거대한 파일이 생성되기 때문입니다(그렇게 많은 데이터가 필요하지 않습니다).
tcpflow -p -c -i eth0 port 80 > log.txt
grep log.txt --text detect
속성 에서만 작동하며 --text
(바이너리 파일 형식에 대해서는 언급되지 않음) 며칠 후에 파일이 매우 커질 수 있습니다.
답변1
의견을 주신 Arkadiusz Drabczyk에게 감사드립니다. 다음과 같은 데모와 함께 사용할 수 있습니다.
sudo tcpflow -i eth0 port 8080 -c | grep -A 50 "detect" --line-buffered > /tmp/tcpflow.log