-W
Debian Buster에서는 플래그에 대한 설명으로 판단하면 ping
다음과 같은 것을 사용할 수 있을 것 같습니다:
ping -i 10 -W 5 8.8.8.8
인터넷 연결을 지속적으로 모니터링하십시오. 연결이 끊어지면 각 핑(10초 간격) 후 5초 동안 ping
응답이 보고되지 않을 것으로 예상됩니다. 대신 연결이 복원될 때까지 출력이 일시 중지되고(최소 60초, 무기한 가능) 해당 일시 중지 중에 전송된 모든 핑이 완료되고 긴 퐁 시간만 표시됩니다. 따라서 출력은 다음과 같습니다.
64 bytes from 8.8.8.8: icmp_seq=36 ttl=117 time=11.705 ms
64 bytes from 8.8.8.8: icmp_seq=37 ttl=117 time=11.963 ms
64 bytes from 8.8.8.8: icmp_seq=38 ttl=117 time=11.900 ms
64 bytes from 8.8.8.8: icmp_seq=39 ttl=117 time=11.288 ms <-- connection interrupted after this line
64 bytes from 8.8.8.8: icmp_seq=40 ttl=117 time=65697 ms <-- this line takes ~65s to appear
64 bytes from 8.8.8.8: icmp_seq=41 ttl=117 time=55880 ms
64 bytes from 8.8.8.8: icmp_seq=42 ttl=117 time=45116 ms
64 bytes from 8.8.8.8: icmp_seq=43 ttl=117 time=35949 ms
64 bytes from 8.8.8.8: icmp_seq=44 ttl=117 time=25266 ms
64 bytes from 8.8.8.8: icmp_seq=45 ttl=117 time=15943 ms
64 bytes from 8.8.8.8: icmp_seq=46 ttl=117 time=5818 ms
64 bytes from 8.8.8.8: icmp_seq=47 ttl=117 time=11.578 ms <--- connection restored before this ping
64 bytes from 8.8.8.8: icmp_seq=48 ttl=117 time=11.382 ms
64 bytes from 8.8.8.8: icmp_seq=49 ttl=117 time=11.624 ms
64 bytes from 8.8.8.8: icmp_seq=50 ttl=117 time=11.407 ms
64 bytes from 8.8.8.8: icmp_seq=51 ttl=117 time=11.864 ms
64 bytes from 8.8.8.8: icmp_seq=52 ttl=117 time=11.716 ms
내가 예상한 대로:
64 bytes from 8.8.8.8: icmp_seq=36 ttl=117 time=11.705 ms
64 bytes from 8.8.8.8: icmp_seq=37 ttl=117 time=11.963 ms
64 bytes from 8.8.8.8: icmp_seq=38 ttl=117 time=11.900 ms
64 bytes from 8.8.8.8: icmp_seq=39 ttl=117 time=11.288 ms <-- connection interrupted after this line
ping is down: no route to host
ping is down: no route to host
ping is down: no route to host
ping is down: no route to host
ping is down: no route to host
ping is down: no route to host
ping is down: no route to host
64 bytes from 8.8.8.8: icmp_seq=47 ttl=117 time=11.578 ms <--- connection restored before this ping
64 bytes from 8.8.8.8: icmp_seq=48 ttl=117 time=11.382 ms
64 bytes from 8.8.8.8: icmp_seq=49 ttl=117 time=11.624 ms
64 bytes from 8.8.8.8: icmp_seq=50 ttl=117 time=11.407 ms
64 bytes from 8.8.8.8: icmp_seq=51 ttl=117 time=11.864 ms
64 bytes from 8.8.8.8: icmp_seq=52 ttl=117 time=11.716 ms
이러한 질문을 바탕으로 명확한 대답이 없는 일반적인 질문은 다음과 같습니다.
- https://stackoverflow.com/questions/20359487/why-does-ping-not-timeout-in-linux
- https://stackoverflow.com/questions/18228886/ping-timeout-issues
- https://stackoverflow.com/questions/17951182/ping-timeout-command-w-not-working-for-android
- https://stackoverflow.com/questions/32976579/how-long-is-the-interval-for-a-ping-that-results-in-destination-host-unreachabl
- https://stackoverflow.com/questions/21639576/php-ping-on-linux-timeout-not-working
- https://serverfault.com/questions/570336/android-linux-ping-sends-another-packet-before-packet-timeout
따라서 두 가지 질문을 요약하면 다음과 같습니다.
- 시간 초과 후 ping에서 연결 실패를 보고하도록 하는 방법이 있습니까?
-W
(1)을 해결하지 못한다면 디자인의 목적은 무엇입니까?
답변1
대답:
ping
제가 아는 한 내장된 것은 아무것도 없습니다. 두 가지 솔루션이 있습니다.- 출력을 grep하거나 반환 플래그를 확인하고 유용한 출력을 에코하는 루프 에 단일 핑(예:
ping -c1 -W 5 8.8.8.8
) 을 래핑합니다.bash
좋은 예는 다음과 같습니다.https://superuser.com/a/668124 - 이
-O
플래그는 즉시 실패 메시지를 표시합니다. 그것과 아무 관련이 없고-W
관련된 시간 초과도 없으므로 정확히 동일하지는 않지만 적어도 연결 문제는 분명해야 합니다.
- 출력을 grep하거나 반환 플래그를 확인하고 유용한 출력을 에코하는 루프 에 단일 핑(예:
-W
별도로 지정하지 않는 한-c
패킷 수를 제한 할 목적은 없는 것 같습니다.-c
지정된 경우 시간 초과가 전체가 아닌 핑당이라는 점을 제외하면-W
유사합니다 .-w