Linux에서는 다음 명령을 사용하여 몇 초 안에 서버 가동 시간 결과(값)를 얻을 수 있습니다.
cat /proc/uptime
uptime
하지만 AIX에는 /proc
. 을 입력하면 uptime
일, 시간, 분 단위로 결과를 얻을 수 있지만 86400초나 30초 등 초 단위로 출력을 원합니다.
이 출력을 사용하여 1800초 미만이 경과할 때 경보를 생성하도록 SCOM 모니터링 도구에서 경보를 설정하고 싶습니다.
SCOM에서 셸 명령을 실행할 수 있습니다.
답변1
넌 적응할 수 있어다양한 운영 체제에서 프로세스 가동 시간을 얻는 방법은 무엇입니까?프로세스 1(init) 이후 경과된 시간(초)을 매우 가까운 근사치로 반환합니다.
#!/bin/sh
t=$(LC_ALL=POSIX ps -o etime= -p 1)
d=0 h=0
case $t in *-*) d=$((0 + ${t%%-*})); t=${t#*-};; esac
case $t in *:*:*) h=$((0 + ${t%%:*})); t=${t#*:};; esac
s=$((10#$d*86400 + 10#$h*3600 + 10#${t%%:*}*60 + 10#${t#*:}))
printf '%d\n' "$s"
답변2
아래 라이너 중 하나를 사용하십시오..
가동 시간 = uptime | awk -F ',' ' {print $1" "$2}'|awk ' {print $3" "$4" "$5}' | sed '1,$s/:/ /' | awk ' {if ($4 =="users") print $1*60 + $2;else if ($4 =="user") print $1*60 + $2;else if ($2=="mins") print $1;else print $1*24*60 + $3*60 + $4}'
; if [ $uptime-lt 300 ]; then echo "300분 전에 다시 시작", 그렇지 않으면 echo "OK";