서버가 2개 있습니다. 그 중 하나가 자주 충돌합니다. 휴대폰이 충돌할 때 휴대폰으로 문자 메시지를 보내고 싶습니다.
나는 다른 서버에서 이 간단한 bash 스크립트를 작성하고 이를 crontab에 넣어 10분마다 실행했습니다.
wget --spider http://mywebsite.com || php sendsms.php
이것이 올바른 접근 방식입니까? 가끔 문자 메시지를 받았는데 서버가 문제 없이 실행되는 것을 확인했습니다.
답변1
출력에서 실패의 원인을 확인할 수 있어야 합니다 wget --spider ...
. wget
이 정보는 스크립트를 실행하는 사용자에게 이메일로 전송됩니다.
[email protected]
검토를 위해 이메일 계정으로 리디렉션할 수 있습니다.
허위 네트워크 또는 DNS 오류가 있는 경우 사용할 수 없는 상태가 일시적인지 다시 확인하여 오탐지 수를 줄일 수 있습니다.
wget --spider -a /var/tmp/wget_test.log http://mywebsite.com || (sleep 10; wget --spider http://mywebsite.com ) || php sendsms.php
나는 (stderr로 인쇄하는 대신) 로그 파일에 출력을 추가하여 첫 번째 시도를 했습니다. 이렇게 하면 모든 것이 제대로 작동하면 10분마다 이메일을 받지 않게 됩니다.
각 wget
실행은 먼저 URL을 시도할 때 날짜 타임스탬프와 URL을 인쇄합니다. 두 번째 이메일로 전송된 출력의 날짜-타임 스탬프를 wget
로그 파일의 날짜-타임 스탬프와 일치시키면 처음에는 실패하고 두 번째에는 통과한 모든 실행을 볼 수 있습니다.wget