10億ページ(「B」が表示されます)の応答コードをテストする必要があります。どのようにひねっても、何日もかかることを完全に承知しています。私は時間があるよ。
ただし、現在のスクリプトは1秒あたり200しかないようです。これは十分に高速ではありません。このレートでは2か月かかります。
mycurl() {
response=$(curl --write-out %{http_code} --silent --output /dev/null http://www.example.com/test/$1)
echo "$1"
if [ "$response" == "200" ]; then
echo "valid" > "enum/$1" | cat
fi
}
export -f mycurl
i=0
seq 1000000000 | parallel -j0 mycurl
parallel
の速度が速すぎます(つまり、何かを待っている)。
私はこれを見つけましたが、それを機能させる方法については不明です: https://www.gnu.org/software/parallel/sem.html
スクリプトを最適化するにはどうすればよいですか?
ヘッダーとWebページのコンテンツではなく、--head
(または-I
)を使用してヘッダーのみをフェッチします。 Webページのサイズによっては、これによりネットワークトラフィックが減少する場合があります。
出力を破棄するようにすでに指定しているので、ファイルに書き込む時間は失われません。したがって、これがもたらす唯一の削減は、サーバー側とネットワーク上です。サーバーは実際にはページをネット経由で送信しませんが、それでもページを生成したり、キャッシュから取得したりできます。