urls.txt 파일에 URL 목록이 있습니다.
curl
가능하다면 를 사용하여 가져오려고 할 때 404 오류가 발생하는 모든 URL을 가져와서 새 파일에 복사하고 싶습니다 .
예를 들어 내 파일 urls.txt의 URL은 다음과 같습니다.
mysite.com/page1
mysite.com/page2
mysite.com/page3
mysite.com/page4
mysite.com/page5
...
mysite.com/page100
...
mysite.com/page1000
그래서 각각을 가져오려고 하고, 오류 404로 인해 가져오기가 실패하면 실패한 URL을 새 파일에 저장하고 싶습니다.
답변1
이것이 최선은 아닐 수도 있지만 시도해 보십시오.
파일을 생성 urlcheck.sh
하고 실행 권한을 부여합니다. 아니면 그냥 다음 명령을 입력하세요.
touch urlcheck.sh
chmod +x urlcheck.sh
다음 스크립트를 붙여넣으세요.urlcheck.sh
#!/bin/bash
TIMEOUT=3
if [ ! -f output404.txt ]; then
touch output404.txt
fi
while IFS= read -r line; do
OUT_URL=$(curl -I $line 2>&1 -m $TIMEOUT| awk '/HTTP\// {print $2}')
if [ "$OUT_URL" == "404" ]; then
echo $line >> output404.txt
echo "$line written to output404.txt"
else
echo "$line $OUT_URL"
fi
done < "$1"
그리고 저장하세요.
스크립트를 실행합니다:
./urlcheck.sh urls.txt
그런 다음 output404.txt
스크립트가 생성한 내용을 확인하세요.
참고하세요각 줄의 URL은 읽을 수 있는 URL이어야 합니다 curl
(예: ) https://unix.stackexchange.com/
.
두 번째 줄에서 시간 초과를 변경할 수 있습니다 TIMEOUT=3
.