vmstat 1 5 | egrep -e '^ *[0-9]' | awk '{total=total+$22}END{print total/5}'
위처럼 1초간 5회 (5초동안의 cpu idle)을 측정해서 5로 나눈 값을 출력하도록 하면 5초동안의 평균치가 나오므로 5분으로 하시려면
vmstat 1 300 | egrep -e '^ *[0-9]' | awk '{total=total+$22}END{print total/300}'
으로 가능하다고 봅니다.
단, 커맨드를 내린 뒤 300초간 측정하느라 응답이 없게 되므로 & 등으로 백그라운드 실행을 시키시면 좋을듯 싶습니다.
vmstat 1 300 | egrep -e '^ *[0-9]' | awk '{total=total+$22}END{print total/300}' &
더 응용하시면, 측정한 시간까지 넣어서 로그를 뽑을수도 있겠지요.
아 위에건 solaris에서 뽑은 것입니다.
cpu idle 위치는 vmstat 1 1 명령으로 몇번째에 위치해 있는지 확인하시고,
위 스크립트에서 {print $22} 부분을 고쳐주시면 됩니다.
(solaris가 22번째 필드에 cpu idle이 나왔기 때문에 $22 입니다.)
참고입니다만,
awk가 기본값으로 스페이스나 탭을 기준으로 문자열을 자르기 때문에 기본값으로 쓴 것입니다.
cpu idle 평균값 측정