![일정 기간 동안 CPU% 판독값을 기록합니다.](https://linux55.com/image/78857/%EC%9D%BC%EC%A0%95%20%EA%B8%B0%EA%B0%84%20%EB%8F%99%EC%95%88%20CPU%25%20%ED%8C%90%EB%8F%85%EA%B0%92%EC%9D%84%20%EA%B8%B0%EB%A1%9D%ED%95%A9%EB%8B%88%EB%8B%A4..png)
내 질문은 사용자가 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