Conozco este ejemplo de sar sar -u 1 3 que proporciona estadísticas para los próximos 3 segundos con un intervalo de 1 segundo.
Sin embargo, sar también continúa recopilando información en segundo plano (mi cron está configurado para recopilar estadísticas por cada minuto). ¿Hay alguna manera de que pueda simplemente consultar usando el comando sar para contar las estadísticas de los últimos 5 minutos y su promedio?
En este momento estoy usando el siguiente comando a continuación
interval=5; sar -f /var/log/sysstat/sa22 | tail -n $interval | head -n -1 | awk '{print $4+$6}'| awk '{s+=$1} END {print s/$interval}'para verificar el uso general de la CPU en los últimos 5 minutos.
¿Hay una mejor manera?
Desafortunadamente, cuando se usa la opción -f en sar junto con el intervalo y el conteo, no devuelve el valor promedio para el intervalo dado (como era de esperar). En su lugar, siempre devuelve el primer valor registrado en el archivo sar.
La única forma de evitarlo es usar la opción -s que le permite especificar un momento en el que comenzar su período de muestreo. He proporcionado una secuencia de comandos perl a continuación que termina con una llamada a sar que se construye de una manera que devolverá lo que está buscando.
Espero que esto ayude.
Pedro Rodas.
#!/usr/bin/perl $interval = 300; # seconds. $epoch = `date +%s`; $epoch -= $interval; $time = `date -d \@$epoch +%H:%M:00`; $dom = `date +%d`; chomp($time,$dom); system("sar -f /var/log/sysstat/sa$dom -B -s $time 300 1");