모니터링하고자 하는 프로세스의 Uptime을 체크하는 스크립트
#!/bin/bash
source /home/shell/env.sh
# 모니터링하고자 하는 프로세스 패턴 문구
#CpuProcessName=("모니터링할 프로세스 이름")
for ProcessName in "${CpuProcessNames[@]}"
do
# 검색되는 프로세스들의 PID를 추출
pids=$(ps aux | grep $ProcessName | grep -v grep | awk '{print $2}')
- ps 명령어로 해당 프로세스 이름을 가진 프로세스를 찾고, grep을 사용하여 필터링
- 마지막으로 awk를 사용하여 PID를 추출
# PID가 없을 경우 101 출력 후 종료
if [ -z "$pids" ]; then
echo 101
exit 0
fi
- 프로세스가 없을 경우 101을 출력하고 스크립트를 종료
# Uptime 체크 후 1년 이상인 것이 하나라도 있을 경우 1 출력
for pid in $pids; do
uptime=$(ps -p $pid -o etimes=)
if [ "$uptime" -ge "$cpu_time_limit" ]; then
echo 1
exit 0
fi
done
- 모든 PID에 대해 해당 PID의 Uptime을 확인하고, 설정된 임계치 cpu_time_limit보다 크거나 같을 경우 1을 출력하고 스크립트를 종료
done
# 모든 프로세스의 Uptimedl 1년 미만일 경우 0 출력
echo 0
#!/bin/bash
source /home/shell/env.sh
# 모니터링하고자 하는 프로세스 패턴 문구
#CpuProcessName=("모니터링할 프로세스 이름")
for ProcessName in "${CpuProcessNames[@]}"
do
# 검색되는 프로세스들의 PID를 추출
pids=$(ps aux | grep $ProcessName | grep -v grep | awk '{print $2}')
# PID가 없을 경우 101 출력 후 종료
if [ -z "$pids" ]; then
echo 101
exit 0
fi
# Uptime 체크 후 1년 이상인 것이 하나라도 있을 경우 1 출력
for pid in $pids; do
uptime=$(ps -p $pid -o etimes=)
if [ "$uptime" -ge "$cpu_time_limit" ]; then
echo 1
exit 0
fi
done
done
# 모든 프로세스의 Uptimedl 1년 미만일 경우 0 출력
echo 0
'리눅스' 카테고리의 다른 글
모니터링 쉘 스크립트 만들기(14) (0) | 2024.05.29 |
---|---|
모니터링 쉘 스크립트 만들기(13) (0) | 2024.05.29 |
모니터링 쉘 스크립트 만들기(11) (0) | 2024.05.29 |
모니터링 쉘 스크립트 만들기(10) (0) | 2024.05.29 |
모니터링 쉘 스크립트 만들기(9) (0) | 2024.05.29 |