
이 명령을 사용하여 포트를 수신하고 데이터를 파일로 덤프합니다.
while : ; do nc -l 0.0.0.0 10000 > log.txt & done
첫 번째 요청은 완벽하게 작동하며 log.txt에 덤프되지만 첫 번째 요청 후 nc는 더 이상 수신하지 않고 중지됩니다.
누군가 내가 뭘 잘못했는지 지적해 줄 수 있나요?
나는 이것이 백그라운드에서 지속적으로 실행되고 이 포트의 모든 요청을 log.txt 파일에 기록하기를 원합니다.
답변1
옵션을 추가해야 합니다.체크 안함. 옵션은 버전에 따라 다릅니다.체크 안함당신은 달리고 있습니다. 예를 들어 내 경우(Kubuntu) 옵션은 다음과 같습니다.-케이. 매뉴얼 페이지에서,
-k 현재 연결이 완료된 후 nc가 다른 연결을 계속 수신하도록 강제합니다. -l 옵션 없이 이 옵션을 사용하면 오류가 발생합니다.
약속할 수 없어-케이작동하려면(물론 Ubuntu를 사용하지 않는 한) 비슷한 것을 검색해야 합니다. 예를 들어, 내 데비안에서는-케이존재하지 않지만 다음을 발견했습니다.
-q stdin에서 EOF 후 초, 지정된 시간(초)을 기다린 후 종료합니다. 초가 음수이면 영원히 기다립니다.
편집하다:
한 대의 PC에서 작동하는지 확인하려면 다음을 수행하세요.
nc -k -l 0.0.0.0 10000 > out.txt
두 번째 PC에서:
echo Hello | nc IP_address_of_first_pc 10000
위의 명령을 몇 번 발행한 후 중단하십시오.체크 안함pc1에서 명령을 실행하여 out.txt의 줄 수를 확인하세요.