[shell] 리눅스 CPU, Memory, Disk 성능 모니터링 쉘 스크립트

반응형

서버 성능 (CPU, MEMORY, DISK) 모니터링 스크립트

#!/bin/bash

#DATE
today=`date +%Y-%m-%d_%T`

#PATH
dir=/home/performance

#CPU INFO
CPU_PERSENT=`top -b -n 1 | grep -i $Cpu\(s\) | tr -s "," " " | awk '{print 100-$8}'` // top 플래그 중 -b로 bash 선언 및 -n 1 플래그로 1회 출력 + tr -s 옵션으로 ","를 " "(공백)으로 치환 + awk 함수로 100빼기 8열 출력 (제 서버 기준 8열은 idle 값임)

#MEM INFO
MEM_TOTAL=`free | grep -i ^Mem | awk '{print $2}'` // free 출력값 중 Mem 으로 시작하는 행에서 2번 째 열 출력
MEM_USED=`free | grep -i ^Mem | awk '{print $3}'` // free 출력값 중 Mem 으로 시작하는 행에서 3번 째 열 출력
MEM_PERSENT=$((100*MEM_USED/MEM_TOTAL))

#DISK INFO
DISK_TOTAL=`df -P | grep -v ^Filesystem | awk '{sum += $2} END {print sum;}'` // df -P 출력값 중 Filesystem이 들어간 행을 제외하고, awk 함수로 2열 모든 값을 더해서 출력
DISK_USED=`df -P | grep -v ^Filesystem | awk '{sum += $3} END {print sum;}'` // df -P 출력값 중 Filesystem이 들어간 행을 제외하고, awk 함수로 3열 모든 값을 더해서 출력
DISK_PERSET=$((100*DISK_USED/DISK_TOTAL))

echo $today
echo CPU 사용량 : $CPU_PERSENT "%", MEMORY 사용량 : $MEM_PERSENT "%", DISK 사용량 : $DISK_PERSENT "%" >> $dir/performance.log

 

CPU 측정 (top말고 mpstat)

#!/bin/bash

CPU_USAGE = mpstat 1 5 | tail -n 1 | awk '{print 100-$12}' // mpstat 1초 간격 5회 수행 + tail 명령어로 맨 마지막 줄만 출력 + awk 함수로 100빼기 12 열 출력 (제 서버 기준 12열은 idle 값임)

 

반응형

'IT2 > shell' 카테고리의 다른 글

[리눅스] 배시 쉘(bash shell) (환경)변수 - 기초 1편  (0) 2022.07.03

댓글

Designed by JB FACTORY