메뉴 닫기

script를 이용한 서버 리부팅 횟수 확인

script를 이용한 서버 리부팅 발생시 리부팅 횟수 확인

shell scrpit 활용

  • 서버 이용 중 발생 

서버 관리 중 비정상적인 서버 리부팅 모니터링을 위해서 작성합니다.

서버 이용 중 여러 가지 이유로 인해서 리부팅을 해야 하거나 자동으로 리부팅이 진행되는 서버를 모니터링 하기 위한 스크립트입니다. 

 

  • os : ubuntu 22.04, Rocky linux 9 
  1. last 명령어를 이용하여 down (reboot) 된 로그를 이용한 모니터링 진행
  2. 생성한 스크립트를 rc.local에 등록하여 서버 부팅시 스크립트 실행
  3. telegram을 통한 알람 확인 (모니터링)
scrlast 명령어를 이용한 스크립트 작성 
#!/bin/sh

b=`last reboot | grep reboot | wc -l`
up_time=`cat /proc/uptime  |awk '{print $1}' | cut -d. -f1`
 
reboot_date=""
for i in $(seq $b);do
time=`last -f /var/log/wtmp --fulltime |grep "system boot"| awk '{print $5, $6, $7, $8, $9}' |sed -n "${i}p"`
time_convert=`date -d "$time" "+%Y-%m-%d %H:%M,"`
reboot_date="$reboot_date $time_convert"
reboot_date_final=`echo $reboot_date | sed 's/ /, /g'`
done

output="에서 총 $b 회 리붓 되었고 리붓 시기는 $reboot_date 입니다."
echo $(hostname) $output
  • telegram 알람 발송 
if [ "$up_time" -le "3600" ];then
echo "$output" >> /root/reboot_check.txt
curl https://api.telegram.org/bot(봇 토큰값 입력)/sendMessage?chat_id=(자신의 텔레그램 chat_id)\&text="$output"
fi
  • 스크립트 결과 값
hostname 에서 총 3 회 리붓 되었고 리붓 시기는 2023-02-01 14:44, 2023-02-01 14:04, 2023-01-31 15:06, 입니다.

  • 스크립트 rc.local 등록 후 사용 하시면 비정상적인 리부팅 횟수를 파악하시는데 도움이 될 것 같습니다. 
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x