저는 웹사이트에서 몇 가지 사항을 모니터링하는 스크립트를 작성 중입니다. 그 중 하나는 http 상태와 응답 시간을 모니터링하는 것입니다.
스크립트에서 http_status를 가져오는 명령을 실행합니다. (http 명령은 httpie: 인간을 위한 Curl과 유사한 도구에서 제공됩니다.)
http -timeout 10 -follow -h http: //$I/ | grep "HTTP\/1.1" | awk '{print $2}'
이 명령은 상태 자체(예: 200, 404, 403 등)를 반환하거나 다음 두 가지를 더 반환합니다.
http: error: Request timed out (10.0s)
또는
http: error: ConnectionError ..."
참고: 시간 초과를 늘려도 문제가 해결되지 않았습니다. 10초가 필요해요.
이 두 가지 다른 옵션을 반환할 때 특정 코드를 어떻게 입력할 수 있나요? 시간 초과 반환 9999
및 오류 등 8888
.
답변1
간단한 case
설명으로 원하는 작업을 수행할 수 있습니다.
case "$(http_status)" in
"case 1")
return 199
;;
"case 2")
return 198
;;
*)
# All is well; do nothing
;;
esac
*"timed out"*)
또는 같은 와일드카드 문자를 사용할 수 있습니다 *"ConnectionError"*)
.