웹 서버가 응답하기를 기다리는 bash에서 루프를 만드는 방법은 무엇입니까?
웹 서버가 응답하기를 기다리는 bash에서 루프를 만드는 방법은 무엇입니까?
"."가 인쇄되어야합니다. 10 초 정도마다 서버가 응답을 시작할 때까지 기다립니다.
업데이트,이 코드는 서버에서 좋은 응답을 받는지 테스트합니다.
만약 curl --output / dev / null --silent --head --fail "$ url"; 그때 echo "URL 존재 : $ url" 그밖에 echo "URL이 존재하지 않습니다 : $ url" fi
질문을 chepner의 답변과 결합하면 이것은 나를 위해 일했습니다.
until $(curl --output /dev/null --silent --head --fail http://myhost:myport); do
printf '.'
sleep 5
done
최대 시도 횟수를 제한하고 싶었습니다. Thomas의 대답을 바탕으로 다음과 같이 만들었습니다.
attempt_counter=0
max_attempts=5
until $(curl --output /dev/null --silent --head --fail http://myhost:myport); do
if [ ${attempt_counter} -eq ${max_attempts} ];then
echo "Max attempts reached"
exit 1
fi
printf '.'
attempt_counter=$(($attempt_counter+1))
sleep 5
done
httping은 이것에 좋습니다. 간단하고 깨끗하며 조용합니다.
while ! httping -qc1 http://myhost:myport ; do sleep 1 ; done
등은 개인적인 환경입니다.
백틱의 사용 ` `
은 오래되었습니다 . 사용 $( )
하는 대신 :
until $(curl --output /dev/null --silent --head --fail http://myhost:myport); do
printf '.'
sleep 5
done
Interesting puzzle. If you have no access or async api with your client, you can try grepping your tcp sockets like this:
until grep '***IPV4 ADDRESS OF SERVER IN REVERSE HEX***' /proc/net/tcp
do
printf '.'
sleep 1
done
But that's a busy wait with 1 sec intervals. You probably want more resolution than that. Also this is global. If another connection is made to that server, your results are invalid.
wait-on
is a cross-platform command line utility and Node.js API which will wait for files, ports, sockets, and http(s) resources to become available: https://github.com/jeffbski/wait-on
For example, wait :8080 for 5s and do NEXT_CMD if succeed.
wait-on -t 5000 http-get://localhost:8080/foo && NEXT_CMD
if you need check if the server is available, cause is restarting or something else, you could try to make an wget to the server and parse the response or the error, if you get a 200 or even a 404 the server is up, you could change the wget timeout with --timeout=seconds, You could set timeout to 10 second and make a loop until the grep over the response have a result.
i dont know if this is what you are searching or really you need the bash code.
'IT story' 카테고리의 다른 글
긴 텍스트를 사용한 Rails 3 마이그레이션 (0) | 2020.09.11 |
---|---|
vi에서 현재 위치에서 줄 끝으로 복사하는 방법 (0) | 2020.09.11 |
여러 함수 호출 onClick ReactJS (0) | 2020.09.11 |
출력 디렉토리로 복사는 폴더 구조를 복사하지만 파일 만 복사하려고합니다. (0) | 2020.09.11 |
PostgreSQL 서버 Mac OS X의 상태를 확인하는 방법 (0) | 2020.09.11 |