Contar peticiones/request por IP de un access_log de Apache en bash

Aqui os dejo una pequeña linea en bash para contar la cantidad de requests por IP en un access_log de Apache.

cat /var/log/httpd/access_log |awk '{print($1)}'|sort |uniq -c |sort

Aqui la explicacion de como funciona:
Lo primero que hacemos es abrir el archivo con cat, el contenido se pasa a awk con el cual obtenemos la primera columna (lo mismo lo podríamos hacer con cut, pero estoy más acostumbrado a awk). Eso nos devuelve la lista de las IPs. Eso lo pasamos a sort que ordena las IPs antes de poder pasarselo a uniq. Éste último comando, con el parámetro -c se ocupa de contar las líneas repetidas en un listado ordenado (por eso el sort anterior). Y por último le volvemos a pasar todo a sort para que lo ordene en forma ascendente de acuerdo a la cantidad de ocurrencias de cada IP.

Script para copiar un archivo a todos los directorios HOME de todos los usuarios del sistema (Linux)

Este script es muy útil sobre todo para cuando ya estan creados los usuarios del sistema y tienes que copiar archivos de configuración de permisos para la red o incluso para copiar usuarios, se le puede dar muchos usos 😀

#!/bin/bash
_HOME=”/home”
_FILE=”FileName”

# Get List of users
_USERS=$(cut -d : -f1 /etc/passwd)

for u in $_USERS
do
/bin/cp $_FILE ${_HOME}/${u}
chown $(id -un $u):$(id -gn $u) /${_HOME}/${u}/${FILE}
done

Script para combinar grep y tail

Este script es muy interesante, nos permite con el comando “tail” ver en tiempo real el contenido de un fichero y con “grep” resaltar en colores las palabras clave por las que busquemos.

La forma de usarlo es: flowgrep fichero_donde_buscar patron_de_busqueda.

Ejemplo: ./flowgrep event.log [0-9]+ (este ejemplo es para ver diferenciados en el tail todos los numeros que salgan en el log)

Nota: le tendremos que dar antes de todo permisos de ejecucion 😀 chmod +x flowgrep

#!/bin/bash
[ $# -lt 2 ] && echo "$0 file \"pattern\"" && exit 0
tail -f $1|while read line; do echo $line|egrep --color "$2"; done

Solución al aumento de SPAM de estos últimos días

En estos primeros días de Mayo he notado mucho el aumento considerable de SPAM y hablando con los sysadmins que conozco y demas hemos llegado a la conclusión de usar el siguiente script que usa iptables para bloquear las redes bien conocidas de spammers de las listas de spamhaus y okean.

Spamhaus

http://www.spamhaus.org/drop/drop.lasso

Okean

Es una lista exclusiva de redes de spammers chinos y koreanos.
Son lo mismo pero representado de diferentes formas.

http://www.pettingers.org/media/spamblock.txt
http://www.okean.com/antispam/iptabl…wall.sinokorea
http://www.okean.com/sinokoreacidr.txt
http://www.okean.com/sinokorea.txt
http://www.okean.com/antispam/iptabl…wall.sinokorea

Aqui os dejo el dicho script para bloquear las redes spammers de Spamhaus y Okean:

Continuar leyendo «Solución al aumento de SPAM de estos últimos días»

Script para redimensionar muchas fotos al mismo tiempo en Linux

Si necesitas cambiar de golpe y porrazo el tamaño a muchas imagenes y no quieres estar toda la tarde, un poco de bash script y la herramienta convert del paquete imagemagick.

Te pones en la carpeta donde estan las fotos:

for i in *;
do convert -geometry 1024×768 $i /nuevacarpeta/$i;
done

Usando el parametro geometry se mantiene el aspect ratio, osea que la imagen no se deforma.