[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
스크립트 실행
이 스크립트 코드는 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
댓글
댓글 쓰기