Uso-apache-httpd

De FJWiki
Saltar a: navegación, buscar

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