Visitas y Hits de Apache
Visitas en Todos los Dominios
Para conocer el número de visitas (y/o hits de Apache) en TODOS los dominios del servidor corremos este comando:
Comando intensivo para I/O. Usar con cautela. Normalmente se usará en servidores inestables por lo que se debe extremar precaución.
echo; DOMAINS="/usr/local/apache/logs/access_log /usr/local/apache/domlogs/*/*"; RANGE=$(for x in {7..0}; do date --date="-$x hours" +"%d/%b/%Y:%H:"; done); FMT=" %7s"; printf " %15s" "User/Hour"; for hour in $RANGE; do printf "$FMT" "$(echo $hour | cut -d: -f2):00"; done; printf "%8s %-s\n" "Total" " Domain Name"; for logfile in $DOMAINS; do total=0; ACCT=$(echo $logfile | cut -d/ -f6); SITE=$(echo $logfile | cut -d/ -f7); printf " %15s" "$ACCT"; i=0; for hour in $RANGE; do count=$(grep -c "$hour" $logfile); hourtotal[$i]=$((${hourtotal[$i]}+$count)); printf "$FMT" "$count"; total=$((${total}+${count})); i=$(($i+1)); done; grandtotal=$(($grandtotal+$total)); printf "%8s %-s\n" "$total" "$SITE"; done; printf " %15s" "Total"; for x in $(seq 0 $((${i}-1))); do printf "$FMT" "${hourtotal[$x]}"; done; printf "%8s %-s${NORMAL}\n" "$grandtotal" "<< Grand Total"; echo;5 Sitios Más Activos
Si sólo queremos conocer los cinco sitios con más visitas en un servidor, igualmente en las últimas 8 horas, corremos esto:
echo Most Active Domains; find /usr/local/apache/domlogs/ -maxdepth 1 -type f -mtime -1 |egrep -v '(-\w{5,9}_log)'| xargs grep -cP "^[^\]]+\[$(date +%d'/'%b'/'%Y)" |grep :.. |sort -t: -nr -k 2 |head -5 |tee /tmp/delete_domlog; echo; for domlog in $(cut -d':' -f1 /tmp/delete_domlog); do echo $domlog; echo GET $(grep -P "^[^\]]+\[$(date +%d'/'%b'/'%Y)" $domlog | grep -c GET); grep -P "^[^\]]+\[$(date +%d'/'%b'/'%Y)" $domlog | grep GET |cut -d' ' -f7 |sort |uniq -c |sort -nr |head -5; echo POST $(grep -P "^[^\]]+\[$(date +%d'/'%b'/'%Y)" $domlog | grep -c POST); grep -P "^[^\]]+\[$(date +%d'/'%b'/'%Y)" $domlog | grep POST |cut -d' ' -f7 |sort |uniq -c |sort -nr |head -5; doneÚltima actualización
¿Te fue útil?