Diferencia entre revisiones de «Uso-apache-httpd»
De FJWiki
(Página nueva: Script para sacar periódicamente la cantidad de procesos apache que están corriendo. Si se usa un usuario apache distinto a "apache" puede modificarse la variable de entorno USUARIO...) |
|||
Línea 1: | Línea 1: | ||
Script para sacar periódicamente la cantidad de procesos apache que están corriendo. Si se usa un usuario apache distinto a "apache" puede modificarse la variable de entorno USUARIOAPACHE, así como modificar la variable BINARIOHTTPD si es que el binario no es "httpd". Al cancelar con Ctrl-C muestra un "resumen". | Script para sacar periódicamente la cantidad de procesos apache que están corriendo. Si se usa un usuario apache distinto a "apache" puede modificarse la variable de entorno USUARIOAPACHE, así como modificar la variable BINARIOHTTPD si es que el binario no es "httpd". Al cancelar con Ctrl-C muestra un "resumen". | ||
+ | |||
+ | Recibe como primer parámetro el intervalo en número de segundos entre cada línea de output. Si no se especifica asume 60 segundos. | ||
== Código de uso-apache-httpd == | == Código de uso-apache-httpd == |
Revisión del 16:00 29 abr 2009
Script para sacar periódicamente la cantidad de procesos apache que están corriendo. Si se usa un usuario apache distinto a "apache" puede modificarse la variable de entorno USUARIOAPACHE, así como modificar la variable BINARIOHTTPD si es que el binario no es "httpd". Al cancelar con Ctrl-C muestra un "resumen".
Recibe como primer parámetro el intervalo en número de segundos entre cada línea de output. Si no se especifica asume 60 segundos.
Código de uso-apache-httpd
#!/bin/bash
intervalo=${1:-60}
n=0
s=0
p=0
m=0
mems=0
memp=0
memm=0
usuario=${USUARIOAPACHE:-apache}
binario=${BINARIOHTTPD:-httpd}
trap 'echo En $n intervalos de $intervalo segundos hubo $p procesos en promedio\($memp"k"\), con un pico de $m \($memm"k"\).' 0
while [[ 1 ]]; do
lista=$(ps u -u $usuario | grep $binario | awk '{print $5}')
c=$(echo $lista | wc -w)
mem=$(echo $lista | sed -e 's/[0-9]\+/& +/g' -e '1 i 0 ' -e '$ a 1024 / p' | dc)
n=$((n + 1))
mems=$((mems + mem))
memp=$((mems / n))
s=$((s + c))
p=$((s / n))
if [[ $c -gt $m ]]; then m=$c; fi
if [[ $mem -gt $memm ]]; then memm=$mem; fi
echo $n: `date +"%Y%m%d %H%M%S"` "-->" Mem usada: $mem"k;" Procesos: $c";" Promedio: $p
sleep $intervalo
done