URL 목록을 확인하고 Curl을 사용하여 반환 코드를 확인하는 스크립트가 있습니다.
링크된 파일은 다음과 같습니다.
https://link1/...
https://link2/...
https://link200/...
(...)
스크립트:
INDEX=0
DIR="$(grep [WorkingDir file] | cut -d \" -f 2)"
WORKDIR="${DIR}/base"
ARQLINK="navbase.txt"
for URL in $(cat $WORKDIR/$ARQLINK); do
INDEX=$((INDEX + 1))
HTTP_CODE=$(curl -m 5 -k -o /dev/null --silent --head --write-out '%{http_code}\n' $URL)
if [ $HTTP_CODE -eq 200 ]; then
printf "\n%.3d => OK! - $URL" $INDEX;
else
printf "\n\n%.3d => FAIL! - $URL\n" $INDEX;
fi
done
각 URL을 실행하는 데 약간의 시간이 걸리므로 이러한 컬 요청의 속도를 높이는 방법이 궁금합니다. 어쩌면 일부 병렬 Curl 요청을 사용할 수도 있지만 "for" 루프에서 "xargs"를 사용하여 메시지를 동시에 인쇄하는 것은 좋은 방법이 아닌 것 같습니다.
스크립트에서 "xargs"를 사용할 수 있었고 작동했지만 올바른 HTTP 코드는 표시되지 않았습니다.
cat navbase.txt | xargs -I % -P 10 curl -m 5 -k -o /dev/null --silent --head --write-out '%{http_code}\n' %
스크립트에 삽입하는 방법을 찾을 수 없습니다.
어떤 팁이 있나요?