Ich suche ein Programm, das alle paar Sekunden oder die letzten paar Sekunden die durchschnittliche CPU-Auslastung und die durchschnittliche Speicherauslastung der gesamten Maschine in eine Datei schreibt. Gibt es eine vorgefertigte Software, die das kann, oder kann ich einen Befehl verwenden?
Antwort1
#!/bin/bash
while true
do
mem=$(free | grep Mem | awk '{print $4/$2 * 100}');
cpu=$(top -b -n2 -p 1 | fgrep "Cpu(s)" | tail -1 | awk -F'id,' -v prefix="$prefix" '{ split($1, vs, ","); v=vs[length(vs)]; sub("%", "", v); printf "%s%.2f\n", prefix, 100 - v }');
sleep 10s;
echo "${cpu},${mem}" >> log.csv;
done