Diferencia entre revisiones de «Uso-apache-httpd»
De FJWiki
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 | + | 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". Para cambiar el puerto usado puede usarse la variable PUERTOAPACHE. 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. | 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. | ||
Línea 7: | Línea 7: | ||
<source lang=bash> | <source lang=bash> | ||
#!/bin/bash | #!/bin/bash | ||
− | + | #Creado por FJ | |
+ | #Sea licencia GPL | ||
intervalo=${1:-60} | intervalo=${1:-60} | ||
Línea 17: | Línea 18: | ||
memp=0 | memp=0 | ||
memm=0 | memm=0 | ||
+ | conexioness=0 | ||
+ | conexionesp=0 | ||
+ | conexionesm=0 | ||
usuario=${USUARIOAPACHE:-apache} | usuario=${USUARIOAPACHE:-apache} | ||
binario=${BINARIOHTTPD:-httpd} | binario=${BINARIOHTTPD:-httpd} | ||
+ | puerto=${PUERTOAPACHE:-80} | ||
− | trap 'echo En $n intervalos de $intervalo segundos hubo $p procesos en promedio\($memp" | + | trap 'echo -e En $n intervalos de $intervalo segundos hubo $p procesos en promedio \($memp"M"\), con un pico de $m \($memm"M"\). "\n"Conexiones promedio: $conexionesp, con un pico de $conexionesm' 0 |
− | while | + | echo -e "Seq\tFecha Hora\tMem\tProc\tMedia\tConex.\tClientes" |
− | lista=$(ps u -u $usuario | grep $binario | awk '{print $ | + | while true; do |
+ | lista=$(ps u -u $usuario | grep $binario | awk '{print $6}') | ||
+ | conexiones=$(netstat -pnat | grep ":$puerto " |grep ESTABLISHED) | ||
c=$(echo $lista | wc -w) | c=$(echo $lista | wc -w) | ||
− | mem=$(echo $lista | sed -e 's/[0-9]\+/& +/g' -e '1 i 0 ' -e '$ a 1024 / p' | dc) | + | mem=$(echo $lista | sed -e 's/[0-9]\+/& +/g' -e '1 i 0 ' -e '$ a 1024 /p' | dc) |
+ | conexionesc=$(echo "$conexiones" | wc -l) | ||
+ | ips=$(( $(echo "$conexiones" | egrep -o "([0-9]+\.){3}[0-9]+" | sort | uniq | wc -l) - 1 )) | ||
+ | [[ "ips" -eq "-1" ]] && ips=0 | ||
n=$((n + 1)) | n=$((n + 1)) | ||
mems=$((mems + mem)) | mems=$((mems + mem)) | ||
Línea 31: | Línea 41: | ||
s=$((s + c)) | s=$((s + c)) | ||
p=$((s / n)) | p=$((s / n)) | ||
− | + | conexioness=$((conexioness + conexionesc)) | |
− | + | conexionesp=$((conexioness / n)) | |
− | echo $n | + | [[ $c -gt $m ]] && m=$c |
+ | [[ $mem -gt $memm ]] && memm=$mem | ||
+ | [[ $conexionesc -gt $conexionesm ]] && conexionesm=$conexionesc | ||
+ | echo -e $n"\t"`date +"%Y%m%d %H%M%S"`"\t"$mem"M\t"$c"\t"$p"\t"$conexionesc"\t"$ips | ||
sleep $intervalo | sleep $intervalo | ||
done | done |
Revisión del 07:35 2 may 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". Para cambiar el puerto usado puede usarse la variable PUERTOAPACHE. 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
#Creado por FJ
#Sea licencia GPL
intervalo=${1:-60}
n=0
s=0
p=0
m=0
mems=0
memp=0
memm=0
conexioness=0
conexionesp=0
conexionesm=0
usuario=${USUARIOAPACHE:-apache}
binario=${BINARIOHTTPD:-httpd}
puerto=${PUERTOAPACHE:-80}
trap 'echo -e En $n intervalos de $intervalo segundos hubo $p procesos en promedio \($memp"M"\), con un pico de $m \($memm"M"\). "\n"Conexiones promedio: $conexionesp, con un pico de $conexionesm' 0
echo -e "Seq\tFecha Hora\tMem\tProc\tMedia\tConex.\tClientes"
while true; do
lista=$(ps u -u $usuario | grep $binario | awk '{print $6}')
conexiones=$(netstat -pnat | grep ":$puerto " |grep ESTABLISHED)
c=$(echo $lista | wc -w)
mem=$(echo $lista | sed -e 's/[0-9]\+/& +/g' -e '1 i 0 ' -e '$ a 1024 /p' | dc)
conexionesc=$(echo "$conexiones" | wc -l)
ips=$(( $(echo "$conexiones" | egrep -o "([0-9]+\.){3}[0-9]+" | sort | uniq | wc -l) - 1 ))
[[ "ips" -eq "-1" ]] && ips=0
n=$((n + 1))
mems=$((mems + mem))
memp=$((mems / n))
s=$((s + c))
p=$((s / n))
conexioness=$((conexioness + conexionesc))
conexionesp=$((conexioness / n))
[[ $c -gt $m ]] && m=$c
[[ $mem -gt $memm ]] && memm=$mem
[[ $conexionesc -gt $conexionesm ]] && conexionesm=$conexionesc
echo -e $n"\t"`date +"%Y%m%d %H%M%S"`"\t"$mem"M\t"$c"\t"$p"\t"$conexionesc"\t"$ips
sleep $intervalo
done