2010-12-08 4 views
2

약 15-30 분 간격으로 한 번에 약 2500 대의 서버를 핑 (ping)해야합니다. 이것은 세미 실시간 서버 상태 정보를 보여줍니다. 결국 잠재적으로 수만 개의 사이트로 확장 될 수 있으므로이를 염두에 두어야합니다.대량의 동시 핑은 어떻게 수행합니까?

나는 Ruby를 사용하는 Ubuntu 10.10 VPS (Bash)를 사용하고 있습니다.

이렇게 할 방법이 있습니까?

편집 : 서버가 온라인 상태 일 때 에만주의해야합니다. 그래서 처음받은 패킷으로 충분할 것입니다.

답변

3

포격을 nmap 또는 그와 비슷한 것으로 생각합니다. 그것은 그 목적에 잘 맞으며, 매우 빠르며, 모든 필요를 충족시키기 위해 핑 (ping) 할 수있는 충분한 다른 방법을 포함합니다. 여기 내 네트워크 세그먼트의 모든 호스트를 발견 할 수 nmap을을 사용하고 : 여기에 우리가 10.0.0.0에서 10.0.0.255을 통해 모든 호스트를 검사 한

[email protected]:~$ nmap -sP 10.0.0.0/24 
Starting Nmap 5.00 (http://nmap.org) at 2010-12-08 09:16 MST 
Host gw (10.0.0.1) is up (0.00036s latency). 
Host 10.0.0.2 is up (0.0071s latency). 
Host isengard.internal.databill.com (10.0.0.3) is up (0.00062s latency). 
... 
Host arod.internal.databill.com (10.0.0.189) is up (0.0046s latency). 
Host 10.0.0.254 is up (0.00042s latency). 
Nmap done: 256 IP addresses (43 hosts up) scanned in 3.00 seconds 

합니다.

-sP는 일반 사용자로 실행될 수있는 매우 일반적인 호스트 검색 메커니즘 인 "핑 검사"입니다. nmap이하는 다른 유형의 검사가 있는데, 그 중 많은 것들이 루트 권한을 필요로합니다.

루비에서는 역 따옴표 사용합니다 또는 IO.popen는 nmap을 실행하고 그 결과를 캡처 :

output = `nmap -sP 10.0.0.0/24 
output.each_line.find_all do |lines| 
    line =~ /^Host/ 
end.each do |line| 
    # Whatever you want to do for each host 
end 

당신이 -ox 스위치를 제공하면 쉽게 할 수있다 nmap을 의지 출력 XML은, 구문 분석 (고마워, tadman).

+0

다른 솔루션과 함께이 기능을 사용해 보겠습니다. 감사! –

+3

'nmap -oX'를 사용하면 처리가 더 쉬운 XML 출력을 얻을 수 있습니다. – tadman

관련 문제