현재에최선을

[LINUX] shell script를 이용하여 시스템 모니터링 본문

[리눅스]

[LINUX] shell script를 이용하여 시스템 모니터링

현재에최선을 2021. 1. 19. 15:05

[LINUX] shell script를 이용하여 시스템 모니터링

shell 스크립트를 이용해서 시스템의 서비스 포트 상태를 확인 후 서비스 포트에 문제가 있으면 메일 발송

1. vi로 "check.sh" 파일 생성

# vi check.sh

 

2. "check.sh" 파일 안에 내용을 입력

#!/bin/bash

SUBJECT="subject" // 보낼 메일의 제목

MESSAGE="message" // 보낼 메시지

EMAIL="111@aaa.net" // 받는 메일 주소

SEND="send@aaa.net" // 보내는 메일 주소

SERVER=1.1.1.1 // 서비스 체크할 서버 주소

PORT=22 // 서비스 체크할 포트

SMTP=2.2.2.2 // SMTP 서버 IP

 

if nc -nvz -w 1 $SERVER $PORT > /dev/null;then // 정상이면

CHK=1  // 임의로 데이터 저장 처리 -> 의미 없음

else // 비정상이면

mail -r "$SEND" -s "$SUBJECT" -S smtp=smtp://$SMTP:25 "$EMAIL" <<EOF // 본문 메시지 입력을 위해 EOF 사용

$MESSAGE

EOF // EOF 앞에 공백없이 사용해야 함.아니면 에러남.

fi

 

3. 메일 발송을 위해 mailx 라는 메일util을 설치해야 함.

 

이렇게 스크립트를 만든 후 cron에 등록해서 사용.

crontab 관련 시간 설정 시 참고

ponyozzang.tistory.com/402

 

리눅스 crontab 시간 설정 방법 예제 샘플

crontab 파일에 시간을 설정하는 방법을 알아보겠습니다. crontab 서식 분 시 일 월 요일 명령어또는 스크립트 단위  내용  분  분(0~59)을 설정. *을 설정한 경우 1분 단위로 실행.  시  시간(0~23)을

ponyozzang.tistory.com

 

요렇게 설정 : 12시와 7시에 시스템 재기동이 있어서 재외

*/5 01-06,08-23 * * * : 5분마다 한 번씩 1시 ~ 6시, 8-23시

 

Comments