모니터링하고자 하는 프로세스의 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

+ Recent posts