세 개의 URL이 작동하는지 확인하는 스크립트를 작성했습니다. 다운된 경우 URL이 다운되어 비활성화되었음을 알리는 메시지를 보내야 합니다.
문제는 내가 뭔가 잘못했는데 이제 어떤 경우에도 출력에 항상 "URL이 작동 중입니다"라고 표시된다는 것입니다.
참고로.. 우리는 nginx를 사용하므로 grep "http 302found" 출력이 나오는 이유는 무엇입니까?
if curl -k --head $URL1 | grep "302 Found" && curl -k --head $URL1 | grep "302 Found" && curl -k --head $URL1 | grep "302 Found"
then
echo "All The URLs are up!"
else
echo " all url is down "
fi
답변1
시도 해봐.
#!/bin/bash
for URL in <url1> <url2> <url3>
do
STATUS=$(curl -s -o /dev/null -w "%{http_code}\n" $URL)
if [ $STATUS == 302 ] ; then
echo "$URL is up, returned $STATUS"
else
echo "$URL is not up, returned $STATUS"
fi
done