2012-05-03 3 views
0

원하는 ICMP 응답을 제공하는 웹 사이트를 핑 (ping)하려면 다음 시스템 명령을 작성했습니다. 레일에서 루비의 핑 명령에서 평균 시간을 저장하십시오.

PING stackoverflow.com (64.34.119.12) 56(84) bytes of data. 
64 bytes from stackoverflow.com (64.34.119.12): icmp_req=1 ttl=52 time=336 ms 

--- stackoverflow.com ping statistics --- 
1 packets transmitted, 1 received, 0% packet loss, time 0ms 
rtt min/avg/max/mdev = 336.699/336.699/336.699/0.000 ms 
=> true 

지금 내가 위의 통계에서 평균 시간을 저장할 as--

response = system("ping -c1 www.stackoverflow.com") 

응답입니다. 그래서 나는 다음 시스템 명령을 쳤다.

이것은 평균 시간을 제공하지만 response_time 변수에 저장하지 않습니다. response_time에 저장된 값은 입니다.

335.898 
=> true 

지금 내 질문 가 어떻게 RESPONSE_TIME 변수의 평균 시간을 저장하는 것입니다?

답변

1

사용 컬은 : 도움이

Lookup time: 0.589 
Connect time: 0.603 
PreXfer time: 0.603 
StartXfer time: 1.425 

Total time: 2.073 

희망 :

curl -w '\nLookup time:\t%{time_namelookup}\nConnect time:\t%{time_connect}\nPreXfer time:\t%{time_pretransfer}\nStartXfer time:\t%{time_starttransfer}\n\nTotal time:\t%{time_total}\n' -o /dev/null -s http://www.pintile.com 

당신은 같은 출력을 얻을 것이다.

편집 :

확인이 answer.

명령을 백틱으로 묶은 경우에는 (명시 적으로) system()을 호출 할 필요가 전혀 없습니다.

가 좋아 사용

response_time = `ping -c 1 www.pintile.com | tail -1| awk '{print $4}' | cut -d '/' -f 2` 

이제 RESPONSE_TIME을 얻을 것이다. :)

+0

는 나에게 같은 출력을 제공하지만 난 레일에서 동일한 사용하여 시스템 명령을 실행할 때 내가 질문에서 언급 한대로 값을 저장하지 않습니다 콘솔 의심의 여지가. –

+0

안녕 스와 티 ... 내 편집을 확인하십시오. – swati

+0

Yupp 정말 일했습니다 .. 고맙습니다 :) –

0

시도 :

`ping -c1 www.stackoverflow.com` =~ %r[= \d+\.\d+/(\d+\.\d+)] 
response_time = $1 and $1.to_f 
관련 문제