tcpflow 및 grep을 사용하는 HTTP 로그, 파일로 리디렉션이 작동하지 않음(빈 파일)

tcpflow 및 grep을 사용하는 HTTP 로그, 파일로 리디렉션이 작동하지 않음(빈 파일)

특정 포트에 도착할 키워드가 포함된 특정 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

관련 정보