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.

Hacer backup del MBR en Linux desde la shell

Escribimos en una ventana de la shell, con el usuario root:

dd if=/dev/hda of=/home/usuario/backupMBR bs=512 count=1

Por supuesto, un backup no vale de nada si no se puede restaurar, para ello, arrancamos desde un Live CD (u otro medio) y escribimos:

dd if=/dev/sda/backupMBR of=/dev/hda bs=512 count=1

Siendo en estos casos:

  • hda: la unidad que corresponda.
  • sda: la unidad que corresponda.
  • backupMBR: El nombre del fichero donde almacenamos el backup.
  • if (input file): Especificamos el fichero de origen. Si este parámetro no se define se toma el stdin por defecto.
  • of (output file): Especificamos el fichero destino. Si este parámetro no se define se toma el stdout por defecto.
  • bs (block size): Especifica el tamaño del bloque, en bytes.
  • count (number of blocks): Especifica el numero de bloques del archivo a crear