1. 程式人生 > >curl多執行緒批量請求

curl多執行緒批量請求

測試經常遇到檢視大資料量URL請求是否正常。單執行緒跑的太慢

可以自定義執行緒數進行跑,細節不多說,其實我也是上網上湊的,拿下來修修改改能用即可。

#!/bin/bash
ttime=`date +"%Y-%m-%d %H:%M:%S"`
#允許的執行緒數
THREAD_NUM=5
#定義描述符為9的管道
mkfifo tmp
exec 9<>tmp
#預先寫入指定數量的換行符,一個換行符代表一個程序
for((i=0;i<$THREAD_NUM;i++))
do
        echo -ne "\n" 1>&9
done

if [ $# -ne 1 ]
then
        echo "The parameters you enter is not correct!";
        exit -1;
fi

while read line
do
{
        #程序控制
        read -u 9
        {
        isok=`curl -I -o /dev/null -s -w %{http_code} $line`
        if [ $isok = "200" ];then
                echo $line "OK"
        else
                echo $line "no"
        fi
        echo -ne "\n" 1>&9

        }&
}
done <$1
wait
echo "執行結束"
rm -rf  tmp