파이프 된 명령에 Ctrl-C 보내기


2

다음과 같은 명령 사용 :

tcpdump -w - | bzip2 -c > capture.cap.bz2

내가 누를 경우 Ctrl - 기음 그만두고 tcpdump 명령, 내가 깨진 bzip2 아카이브 (나는 두 프로세스를 종료했기 때문에 내가 추측하고있다.)로 끝난다.

나는 내가 보낼 수 있다는 것을 안다. kill `pidof tcpdump`,하지만 다른 SSH 연결을 열지 않고도이 작업을 중단하고 싶습니다.

보낼 방법이 있나요? Ctrl - 기음 하나의 하위 프로세스에만 tcpdump 이 경우)?


2
가정 bash : CTRL + z를 먼저 누른 다음 kill ... (Ctrl + z를 누르면 작업이 일시 중지되고 다시 선택하여 fg - 확인 job control ...에서 man bash )
Hannu

답변:


2

당신이 정지 할 수있는 동안, bg, 동일한 ssh 연결에서 프로세스를 종료하면 더 나은 해결책은 tcpdump의 내장 압축 기능을 사용하는 것입니다.

내장 기능 사용 -지 bzip으로 파이핑하는 것이 아니라 tcpdump 옵션. 이렇게하면 전체 섹션 (회전) 만 압축됩니다.

-지 후 회전 명령

와 함께 사용 -기음 또는 -지 옵션을 사용하면 tcpdump가 " 후 회전 명령 파일 "파일은   각 회전 후에 저장 파일이 닫힙니다. 예를 들어, -z gzip 또는 -z bzip2 gzip 또는 bzip2를 사용하여 각 저장 파일을 압축합니다.

출처: http://www.tcpdump.org/tcpdump_man.html


잘 알고 있습니다. 나는 사용에 대해 생각하지 않았다. bg! -z 옵션에 관해서는, 메모리에 압축을해야합니다. 나는 디스크에 쓰지 않으려 고 노력하고 있습니다.
Vargas

리디렉션은 디스크에 기록합니다. > capture.cap.bz2
Steven

그러나 상당히 적은 시간과 바이트를 쓸 것입니다! :)
Vargas

0

@ Steven의 제안에 기반한 전체 명령은 다음과 같습니다.

tcpdump -w capture_file -z bzip2

그런 다음 tcpdump를 삭제해도 손상된 zip 파일은 남지 않습니다. 대체물은 물론 Ctrl-Z, fg 및 bg를 사용하여 비슷한 것을 달성합니다.

@ Steven의 제안을보기 전까지는 -z 옵션을 알지 못했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.