IT TIP

쉘 스크립팅을 사용하여 웹 페이지가 존재하는지 어떻게 확인합니까?

itqueen 2021. 1. 5. 20:48
반응형

쉘 스크립팅을 사용하여 웹 페이지가 존재하는지 어떻게 확인합니까?


일련의 만화 스캔을 하나의 pdf 파일로 변환 할 수있는 프로그램을 만들려고하는데, 올바른 URL이 있는지 확인하기 위해 사진을 다운로드 할 필요가 없습니다. 웹 페이지가 있는지 확인하는 데 사용할 수있는 셸 스크립팅 명령이 있습니까?


* NIX에서 curl간단한 HEAD요청 을 발행하는 데 사용할 수 있습니다 ( HEAD페이지 본문이 아닌 헤더 만 요청).

curl --head http://myurl/

그런 다음 HTTP 상태 코드 (200 OK, 404 Not Found 등)가 포함 된 첫 번째 줄만 가져올 수 있습니다.

curl -s --head http://myurl/ | head -n 1

그런 다음 적절한 응답을 받았는지 확인하십시오 (상태 코드는 200 또는 3 **).

curl -s --head http://myurl/ | head -n 1 | grep "HTTP/1.[01] [23].."

상태 코드가 정상이면 첫 번째 줄을 출력하고 그렇지 않으면 아무것도 출력하지 않습니다. / dev / null로 파이프하여 출력을 얻지 못하고 $?작동 여부를 결정하는 데 사용할 수도 있습니다 .

curl -s --head http://myurl/ | head -n 1 | grep "HTTP/1.[01] [23].." > /dev/null
# on success (page exists), $? will be 0; on failure (page does not exist or
# is unreachable), $? will be 1

EDIT는 -s 단순히 curl"진행률 표시 줄"을 표시하지 않도록 지시 합니다.


cURL을 사용하여 상태 코드를 얻고 필수 값을 확인하십시오.

status=$(curl -s --head -w %{http_code} http://www.google.com/ -o /dev/null)
echo $status

먼저 인증 문제가 없는지 확인합니다. 인증이 필요한 경우 사용자 이름과 비밀번호를 제공합니다. 셸 스크립트 파일 (checkURL.sh)을 만들고 아래 코드를 붙여 넣습니다.

이것이 당신을 도울 것입니다.

checkURL.sh

yourURL="http://abc-repo.mycorp.com/data/yourdir"

if curl --output /dev/null --silent --head --fail "$yourURL"
then
    echo "This URL Exist"
else
    echo "This URL Not Exist"
fi

Nexus 및 기타 저장소에서 나를 위해 일하고 있습니다.


항상 사용할 수 있습니다 wget. 코드가 더 간단하기 때문에 수행합니다.

 if [[ $(wget http://url/ -O-) ]] 2>/dev/null
  then echo "This page exists."
  else echo "This page does not exist."
 fi

-O-with 옵션을 사용하면 wget페이지의 내용을 출력하지만 존재하는 경우에만 출력을 시도합니다. 따라서 출력이 없으면 페이지가 존재하지 않습니다. 2>/dev/null단지 휴지통 (모든 존재하는 경우) 출력을 보내는 것이다.

기한이 지난 건 알고 있지만 도움이 되었기를 바랍니다.


wget 또는 cURL 이 작업을 수행합니다. 자세한 내용과 다운로드 위치는 여기 wget 또는 cURL참조하십시오 . 이러한 명령 줄 도구에 URL을 제공하고 응답을 확인합니다.

참조 URL : https://stackoverflow.com/questions/2924422/how-do-i-determine-if-a-web-page-exists-with-shell-scripting

반응형