[Shell Script] CPU 사용률 감시

 

 CPU 사용률 감시 





cpu 부하를 정기로 감시하고 idle 값이 낮아지면 경고를 출력하고 싶을 때 사용합니다 . 

스크립트 코드 
#!/bin/sh



idle_limit=100.0  #-------------1

cpu_idle=$(mpstat 1 5 | tail -n 1 | awk '{print $NF}' )  #-----------2


is_alert=$(echo "$cpu_idle < $idle_limit" | bc )         #----------3


if [ "$is_alert" -eq 1 ]; then                           #------------4



    date_str=$(date '+%Y/%m/%d/%H:%M%S')                  #----------------5



    echo "[$date_str] CPU %idle Alert : $cpu_idle (%)"   #------------6
    /home/ec2-user/alert.sh


fi




스크립트 실행





결과치를 출력 하기 위해 100%이하의 허용 값을 넣었습니다.



이 스크립트 코드는 5 초간 CPU 사용률을 조사해서 CPU 부하를 감시하는 코드 입니다 .
여기서 CPU 부하는 %idle 값을 계측합니다 . 

mpstat 명령어로 CPU %idle값을 취득하여 셸 변수 idle_limit로 지정한 값보다 최근 5초간 평균값이 적으면 리소스 부족으로 판단하여 alert.sh 스크립트를 실행합니다 . 


mpstat 명령어 사용

cpu 이용 상태를 취득하기위해 사용하는 명령어 입니다 . 




 인수에 1 5를 지정하여 1초마다 5회 측정합니다 . 

맨 아래 평균값의 %idle 만 분석하면 됩니다 . 





1. CPU idle값 허용하기
idle_limit=100.0  #-------------1

2. mp stat 명령어로 평균 5초간의 idle 값 추출 
cpu_idle=$(mpstat 1 5 | tail -n 1 | awk '{print $NF}' )  #-----------2



3. 현재 idle 허용값을 bc 명령어로 비교합니다.
is_alert=$(echo "$cpu_idle < $idle_limit" | bc )         #----------3

4. 경고 할것인지 조건문 생성

if [ "$is_alert" -eq 1 ]; then                           #------------4

5. 현재시각
date_str=$(date '+%Y/%m/%d/%H:%M%S')                  #----------------5

6. CPU %idle 저하로 경고 출력하기
   echo "[$date_str] CPU %idle Alert : $cpu_idle (%)"   #------------6
    /home/ec2-user/alert.sh






댓글