script를 이용한 서버 리부팅 발생시 리부팅 횟수 확인
shell scrpit 활용
-
서버 이용 중 발생
서버 관리 중 비정상적인 서버 리부팅 모니터링을 위해서 작성합니다.
서버 이용 중 여러 가지 이유로 인해서 리부팅을 해야 하거나 자동으로 리부팅이 진행되는 서버를 모니터링 하기 위한 스크립트입니다.
|
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 등록 후 사용 하시면 비정상적인 리부팅 횟수를 파악하시는데 도움이 될 것 같습니다.