Linux(Ubuntu 20.04에서 테스트됨)

Linux(Ubuntu 20.04에서 테스트됨)

ping실행을 중지하지 않고 일반적인 종료 통계를 표시하도록 지시할 수 있는 방법이 있습니까 ?

예를 들어 다음을 빠르게 보고 싶습니다.

--- 8.8.8.8 ping statistics ---
2410 packets transmitted, 2274 received, +27 errors, 5% packet loss, time 2412839ms
rtt min/avg/max/mdev = 26.103/48.917/639.493/52.093 ms, pipe 3

프로그램을 중지하거나 축적된 데이터를 잃을 필요가 없습니다.

답변1

맨페이지 에서 ping(강조):

지정된 수의 패킷이 전송(및 수신)되거나 프로그램이 SIGINT로 종료되면 간략한 요약이 표시됩니다.SIGQUIT 신호를 사용하여 프로세스를 종료하지 않고도 더 짧은 현재 통계를 얻을 수 있습니다.

따라서 통계를 약간 덜 장황하게 만들고 싶다면 다음과 같이 하면 됩니다.

# the second part is only for showing you the PID
ping 8.8.8.8 & jobs ; fg

<... in another terminal ...>

kill -SIGQUIT $PID

간략한 통계는 다음과 같습니다.

19/19 packets, 0% loss, min/avg/ewma/max = 0.068/0.073/0.074/0.088 ms

답변2

실행 중에 핑 통계를 얻는 더 쉬운 방법이 있습니다.Ctrl + |(수직 슬래시 또는 파이프라인이라고도 함)

개인적으로 많이 사용하고 있으니 한번 사용해 보세요.

64 bytes from 192.168.1.1: icmp_seq=6 ttl=64 time=0.893 ms
64 bytes from 192.168.1.1: icmp_seq=23 ttl=64 time=0.862 ms
64 bytes from 192.168.1.1: icmp_seq=24 ttl=64 time=3.18 ms
64 bytes from 192.168.1.1: icmp_seq=35 ttl=64 time=0.877 ms
64 bytes from 192.168.1.1: icmp_seq=36 ttl=64 time=0.866 ms
**36/36 packets, 0% loss, min/avg/ewma/max = 0.832/0.993/0.930/3.185 ms**
64 bytes from 192.168.1.1: icmp_seq=37 ttl=64 time=0.909 ms
64 bytes from 192.168.1.1: icmp_seq=38 ttl=64 time=2.03 ms
64 bytes from 192.168.1.1: icmp_seq=39 ttl=64 time=0.839 ms
64 bytes from 192.168.1.1: icmp_seq=40 ttl=64 time=0.880 ms

답변3

Linux(Ubuntu 20.04에서 테스트됨)

SIGQUIT신호를 보냅니다 .

출력 예:

64 bytes from localhost (127.0.0.1): icmp_seq=138 ttl=64 time=0.021 ms
64 bytes from localhost (127.0.0.1): icmp_seq=139 ttl=64 time=0.022 ms
139/139 packets, 0% loss, min/avg/ewma/max = 0.014/0.022/0.022/0.057 ms
64 bytes from localhost (127.0.0.1): icmp_seq=140 ttl=64 time=0.090 ms
64 bytes from localhost (127.0.0.1): icmp_seq=141 ttl=64 time=0.025 ms

실행 중에 전송됨

CTRL+ \= quit에 따르면 stty -a다음 도
유효합니다 : CTRL+ |;CTRL4

하나 이상의 알려진 PID로 보내기

kill -SIGQUIT <pid> [...]

달리는 모든 사람에게 보내기

ps -o pid= -C ping | xargs -r kill -SIGQUIT

실행 중인 모든 사용자에게 정기적으로 전송됩니다.

while sleep 20; do ps -o pid= -C ping | xargs -r kill -SIGQUIT; done

배경 작업으로

while sleep 20; do ps -o pid= -C ping | xargs -r kill -SIGQUIT; done &

FreeBSD(FreeBSD 11.3을 기반으로 pfSense 2.4.5에서 테스트됨)

INFO신호를 보냅니다 .

CTRL+를 통해 전송할 때의 출력 예 T:

64 bytes from 127.0.0.1: icmp_seq=137 ttl=64 time=0.328 ms
64 bytes from 127.0.0.1: icmp_seq=138 ttl=64 time=0.028 ms
load: 0.18  cmd: ping 62483 [select] 144.69r 0.00u 0.01s 0% 2256k
139/139 packets received (100.0%) 0.018 min / 0.072 avg / 0.505 max
64 bytes from 127.0.0.1: icmp_seq=139 ttl=64 time=0.116 ms
64 bytes from 127.0.0.1: icmp_seq=140 ttl=64 time=0.027 ms

다음을 통해 보낼 때 샘플 출력 kill:

64 bytes from 127.0.0.1: icmp_seq=137 ttl=64 time=0.328 ms
64 bytes from 127.0.0.1: icmp_seq=138 ttl=64 time=0.028 ms
139/139 packets received (100.0%) 0.018 min / 0.072 avg / 0.505 max
64 bytes from 127.0.0.1: icmp_seq=139 ttl=64 time=0.116 ms
64 bytes from 127.0.0.1: icmp_seq=140 ttl=64 time=0.027 ms

실행 중에 전송됨

CTRL+ T= status에 따르면 stty -a.

하나 이상의 알려진 PID로 보내기

kill -INFO <pid> [...]

달리는 모든 사람에게 보내기

ps -o comm= -o pid= | egrep '^ping[[:space:]]' | awk -F' ' '{print $2}' | xargs -r kill -INFO

실행 중인 모든 사용자에게 정기적으로 전송됩니다.

printf "while ({ sleep 20 })\nps -o comm= -o pid= | egrep '^ping[[:space:]]' | awk -F' ' '{print \0442}' | xargs -r kill -INFO\nend\n" | tcsh

배경 작업으로

printf "while ({ sleep 20 })\nps -o comm= -o pid= | egrep '^ping[[:space:]]' | awk -F' ' '{print \0442}' | xargs -r kill -INFO\nend\n" | tcsh &

메모 및 승인

저에게 주기적 접근 방식에 대한 아이디어를 처음으로 심어준 @pmos의 답변과 이에 기여한 다른 모든 답변과 의견에 감사드립니다.

@VictorYarema 감사합니다제안하다나는 돌아섰다내 댓글실용적인 답변으로. 원래 의견의 접근 방식의 본질은 동일하지만 시간이 지남에 따라 다음과 같이 발전했습니다.

  • -r결과가 없을 때 pid 없이 xargs실행되는 것을 방지하는 옵션이 추가되었습니다 .killps
  • 헤더 행을 제거하기 위해 Linux와 FreeBSD에서는 의미가 다르기 때문에 열 헤더 텍스트를 비워 두는 옵션을 ps사용했습니다.-o pid=hh
    • Linux에서는 ps명시적 옵션이 지원되지만 --no-headersFreeBSD에서는 그렇지 않습니다.
  • 명령을 테스트 조건 sleep으로 이동while
  • 불필요한 인용문을 제거했습니다.
  • FreeBSD로 포팅됨

답변4

시도 Ctrl+4

다음과 같은 줄이 표시됩니다.

312/312 packets, 0% loss, min/avg/ewma/max = 0.312/1.236/0.505/208.655 ms

관련 정보