#!/bin/sh #MEMORY 사용율 MEMORY_TOTAL=`free | grep ^Mem | awk '{print $2}'` MEMORY_USED=`free | grep ^-/+ | awk '{print $3}'` MEMORY_PERCENT=$((100*MEMORY_USED/MEMORY_TOTAL)) #CPU 사용율 CPU_PERCENT=`top -b -n 1 | grep -i cpu\(s\)| awk -F, '{print $4}' | tr -d "%id," | awk '{print 100-$1}'` #DISK 사용율 DISK_TOTAL=`df -P | grep -v ^Filesystem | awk '{sum += $2} END { print sum; }'` DISK_USED=`df -P | grep -v ^Filesystem | awk '{sum += $3} END { print sum; }'` DISK_PERCENT=$((100*$DISK_USED/$DISK_TOTAL)) echo $MEMORY_PERCENT $CPU_PERCENT $DISK_PERCENT [LINUX] shell script를 이용하여 시스템 모니터링 shell 스크립트를 이용해서 시스템의 서비스 포트 상태를 확인 후 서비스 포트에 문제가 있으면 메일 발송 1. vi로 "check.sh" 파일 생성 # vi check.sh 2. "check.sh" 파일 안에 내용을 입력 #!/bin/bash SUBJECT="subject" // 보낼 메일의 제목 MESSAGE="message" // 보낼 메시지 EMAIL="" // 받는 메일 주소 SEND="" // 보내는 메일 주소 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시
|