2012-04-04 6 views
1

ページを取得するための合計時間を出力するスクリプトを作成しています。URLカールのタイミング

curl -I -L -o /dev/null -w "Connect: %{time_connect}: TTFB: %{time_starttransfer} Total time: %{time_total} \n" $1 2>/dev/null 

しかし、問題は、最終的なURLの時刻を返すことです。

www.apple.com合計

www.chinesegooseberry.com 3secsある時間は合計時間が3秒

であるが、実際にwww.kiwifruit.comにをリダイレクトそれは のようなものになるwww.chinesegooseberry.com(リダイレクトする1.5秒) www.kiwifruit.com(3秒) それは私に合計の時間を与えるべきである4.5秒

アイデア?

答えて

1

このクイックperlスクリプトは役立つかもしれない:

#! /usr/bin/perl 

use LWP::UserAgent; 
use Time::HiRes qw/&time/; 

sub timereq { 
    my ($url) = @_; 
    my $ua = LWP::UserAgent->new; 
    $ua->requests_redirectable ([qw/GET POST/]); 
    my $start = time; 
    my $ret = $ua->get($url); 
    if ($ret->is_success()) { 
     return time-$start; 
    } 
    print STDERR "req to $url failed\n" unless $ret->is_success(); 
    return undef; 
} 

$| = 1; 

foreach my $url(@ARGV) { 
    printf("%6.3f %s\n",timereq($url),$url); 
} 

は、コマンドラインで渡されたURLごとに、それは浮動小数点数として、秒単位の応答時間を(エンド・ツー・エンド)を得ます。

これはうまくいきます。

+0

ありがとう、これはbashまたはperlを与えるでしょう – sauj

関連する問題