LAN의 모든 호스트를 나열하는 스크립트 (약 20 개가 있음)를 작성하고 각 호스트 옆에 핑 상태를 기록하려고합니다. DHCP 임대 파일이 있으므로 모든 IP (예 : 10.0.0.1, 10.0.0.2 등)가 있으므로 각 호스트의 ping 상태 만 있으면됩니다.
따라서 내 스크립트는 각 호스트마다 단일 핑을 시작합니다.
ping -c 1 10.0.0.1
불행히도 호스트가 오프라인 상태 인 경우 핑 시간이 초과되는 데 시간이 오래 걸립니다. 나는 선택 man ping
, 제한 시간 지연을 설정하는 두 가지 옵션이있을 것 같다 : -w deadline
와 -W timeout
. 나는 후자에 관심이 있다고 생각합니다.
그래서 나는 이것을 시도했다 :
ping -c 1 -W 1 10.0.0.1
그러나 오프라인 호스트 당 1 초를 기다리는 것이 여전히 너무 깁니다. 나는 그것을 1 초 미만으로 설정하려고 시도했지만 매개 변수를 전혀 고려하지 않는 것 같습니다.
ping -c 1 -W 0.1 10.0.0.1 # timeout option is ignored, apparently
시간 초과를 더 낮은 값으로 설정하는 방법이 있습니까? 그렇지 않다면 대안이 있습니까?
편집하다
- OS는 데비안 레니입니다.
- 핑하려는 호스트는 실제로 액세스 포인트입니다. 배포 및 교체가 간단하도록 사용자와 동일한 VLAN 및 서브넷에 있습니다. 이것이 모든 서브넷을 스캔하고 싶지 않은 이유
ping -b
입니다 (예를 들어).
편집 # 2
나는 fping
해결책을 받아 들였다 (다른 모든 답변에 감사드립니다). 이 명령은 내가 찾던 것을 정확하게 수행합니다.
fping -c1 -t500 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4
이 명령은 완료하는 데 최대 500ms가 걸리며 한 번에 모든 호스트의 핑 상태를 제공합니다.
10.0.0.1 : [0], 84 bytes, 5.71 ms (5.71 avg, 0% loss)
10.0.0.2 : [0], 84 bytes, 7.95 ms (7.95 avg, 0% loss)
10.0.0.3 : [0], 84 bytes, 16.1 ms (16.1 avg, 0% loss)
10.0.0.4 : [0], 84 bytes, 48.0 ms (48.0 avg, 0% loss)
10.0.0.1 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 5.71/5.71/5.71
10.0.0.2 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 7.95/7.95/7.95
10.0.0.3 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 16.1/16.1/16.1
10.0.0.4 : xmt/rcv/%loss = 1/1/0%, min/avg/max = 48.0/48.0/48.0
데비안 레니에서 설치는 간단합니다 :
aptitude update
aptitude install fping