May 16 2008

El camino hacía Tail

Tail es un programa que se encarga de leer las últimas líneas de un determinado archivo y enviarlo a la salida estándar, de ahí su nombre (tail significa cola, lo que supone muy bien su utilización). Tail es una herramienta imprescindible para un buen administrador de sistemas, así que, vamos a echarle un vistazo. La sintaxís de tail es como sigue

CODE:
  1. tail (opciones) (archivo)

Las opciones más importantes de tail son:

  1. --retry : Intenta abrir un archivo, aún si este deja de estar disponible
  2. --bytes=N : Muestra la N cantidad de bytes que se le especifique
  3. -f : Mantiene el seguimiento sobre las nuevas líneas que se vayan añadiendo al archivo, especialmente útil para monitorear los logs del sistema
  4. --lines=N : muestra las últimas N líneas del archivo
  5. --pid=PID : Se usa en conjunto con -f y permite que el tail termine cuando el proceso identificado con el PID señalado muera
  6. -q : No muestra el pequeño header al principio del output que tiene el nombre del archivo
  7. -s N : Combinado con -f hace que tail "duerma" durante N segundos después de cada revisión al archivo
  8. -v : Muestra el nombre del archivo que se está usando al principio de la ejecución de tail
  9. --help : Muestra la ayuda completa del programa

Por ejemplo, una forma muy simple de monitorear el demonio del correo, sería un comando similar a este (suponiendo que esa es a ruta donde está el log del correo):

CODE:
  1. tail -f /var/log/mail

La salida de tail, también es muy común redirigirla a un archivo de texto, por ejemplo

CODE:
  1. tail -lines=20 /var/log/mail > correo.txt

Enviaría a un archivo de texto llamado correo.txt las últimas 20 líneas del log del correo.

October 04 2007

Crontab en 10 minutos

Crontab es una herramienta indispensable para el administrador de sistemas, su principal función, radica en la automatización de tareas dentro de nuestro servidor. Pues bien, después de algún tiempo de tener abandonado este blog, hoy voy a hablar de ello. Lo primero que vamos a hacer es ver que tareas tenemos en el crontab, para ello

crontab -l

Nos mostrará la lista de tareas especificadas en el crontab, es posible que veamos una lista como está:

5 0 * * * tar czf * respaldo

Ahora, analizando está línea encontramos 6 elementos puestos en el orden que sigue:

  1. Minuto: Es el minuto exacto en el que quieres que se ejecute la tarea
  2. Hora: La hora exacta en formato de 24 horas
  3. Día: Valor numérico del día del mes
  4. Mes: Valor numérico del mes
  5. Semana: Valor numérico del día de la semana
  6. Usuario: usuario que ejecuta el comando, sino se pone, se usa root por defecto
  7. Comando: comando a lanzar

Por ejemplo, supongamos que queremos lanzar un proceso a las 12 de la noche de cada sábado que empaquete el contenido de la carpeta de algún proyecto y nos lo envié por correo, sería algo como esto:


0 0 * * 6 tar -cvf proyecto.tar /home/elusuario/proyecto
5 0 * * 6 mail elusuario@porahi.com -s Respaldo -a /home/elusuario/proyecto.tar

Noten que estoy corriendo el proceso como root, los asteriscos se usaran cuando no queremos especificar un parámetro, por supuesto el comando es obligatorio. Ahora que ya tenemos nuestra línea construida, es hora de meterla el contrab, para ello tecleamos:

crontab -e

Y se nos abre una ventana con el editor por defecto (casi siempre vi o vim), estás son algunas reglas básicas de sobrevivencia en vi y derivados para los que se pierdan.

  • i - insertar
  • Tecla insert - presionada una vez entramos a modo de reemplazo, presionada de nuevo, regresamos al modo de insertar
  • Esc - Salimos del modo de inserción y entramos al modo comando
  • :w - Guarda los cambios
  • :q - Sale sin guardar
  • :wq - Sale y guarda cambios
RSS