Пишу скрипт, который пишет в текстовый файл через равные промежутки времени некоторую диагностическую информацию.
Сейчас в файл пишется CPU из PS по конкретному процессу:
#!/bin/bash
delay=15
pid=939445
log="/root/myPerfLog/2008.txt"
echo "Time pcpu" >> $log
for (( i=0; i <= 960; i++ ))
do
currTime=$(date +%H:%M:%S)
psData=$(ps -p $pid --no-headers -o pcpu)
echo "$currTime $psData" >> $log
echo $strps
sleep $gDelay
done
Теперь мне нужны %us и %sy которые я вижу в top.
%Cpu(s): 4,0 us, 1,5 sy, 0,0 ni, 94,2 id, 0,0 wa, 0,0 hi, 0,3 si, 0,0 st
• %us показывает использование отдельного процессора (пользовательскими процессами, такими, как apache, mysql и т.д.) до максимального значения, составляющего 100%. Таким образом, если в четырехъядерном процессоре 1 процесс использует 100% CPU, это даст значение %us, равное 25%. Значение 12,5% для 8-ядерного процессора означает, что занято одно ядро.
• %sy означает использование CPU системой. Обычно это значение невысоко, высокие его значения могут свидетельствовать о проблеме с конфигами ядра, проблему со стороны драйвера, или целый ряд других вещей.
Как мне их достать из top или другого места с тем, чтобы записать в файл?