세 개의 서버 페이지를 모니터링하고 싶습니다. 이 세 페이지에는 간단한 텍스트가 포함되어 있습니다(예: "잘 작동합니다"라고 표시됨). 이 메시지 이외의 다른 메시지가 표시될 때(예: 이메일을 통해) 알림을 받고 싶습니다.
html 파일에 세 페이지의 상태를 표시하는 쉘 스크립트 코드가 필요합니다.
답변1
페이지가 적절한 HTML 페이지이고 이를 구문 분석하고 싶지 않은 경우 lynx
(구식 텍스트 브라우저)를 사용하여 먼저 HTML을 일반 텍스트로 렌더링할 수 있습니다( 플래그 사용 --dump
).
for lnk in http://foo.example.com \
http://bar.example.com \
http://stats.example.com/stillrunning.html
do
lynx --dump "${lnk}" \
| grep "working fine" \
|| mailx -s "${lnk} failed" [email protected]
done
답변2
원하는 것을 달성하기 위해 또는 with를 curl
사용할 수 있습니다 .wget
bash
$ wget -O- http://example.com | grep "working fine" || mailx -s "Oh NO" you ...