일정 기간 동안 CPU% 판독값을 기록합니다.

일정 기간 동안 CPU% 판독값을 기록합니다.

내 질문은 사용자가 CPU% 판독값이 기록되는 기간을 결정하는 것입니다. 내 코드는 다음과 같습니다.

#!/bin/bash
watch -n $1 ps -eo pcpu

맞습니까? $1은 매개변수입니다.

답변1

$1은 스크립트의 첫 번째 매개변수를 나타냅니다.

따라서 스크립트는 N초마다 주기적으로 "ps -eo pcpu"를 호출합니다. 여기서 N은 첫 번째 인수로 스크립트에 전달된 값입니다.

CPU 판독값 로깅에 관해서는 "Watch"가 표시 항목에 더 적합하므로 선택하지 않겠습니다. 아래 예를 참조하세요. N초마다 사용자의 CPU 사용률을 확인합니다(N이 첫 번째 매개변수로 전달됨).

#!/usr/bin/bash

while true
  do
    top -b -n 1 -u "$user" | awk -v user="$user" 'NR>7 { sum += $9; } END { print user, sum; }'
  sleep $1
done

그러면 사용자는 다음과 같이 위 스크립트의 출력을 파일로 파이프할 수 있습니다.

./cpu_utilization.sh 1 > my_cpu_stats.log

관련 정보