Crontab

Crontab

¿Que es el crontab?

El crontab de linux es un programa que permite a los usuarios de linux ejecutar tareas , programas , scripts u ordenes automáticamente a una fecha, hora o minuto determinado.En prácticamente todas las distribuciones de Linux se usa la versión Vixie Cron, por la persona que la desarrolló, que es Paul Vixie, uno de los grandes gurús de Unix.

Mayoritariamente, y  más en las últimas versiones de linux,Cron viene instalado en nuestro sistema de forma predeterminada.

Para asegurarnos que tenemos nuestro Cron instalado en el sistema , podemos probar a realizar el comando crontab -e en caso de que nos diga que no esta instalado lo instalamos desde una terminal así sudo apt-get install cron aunque ya adelanto de que por defecto suele venir instalado.

Llegados a este punto vamos a explicar un poco como funciona el cron.Desde una shell podemos hacer  varias cosas; evidentemente vamos a explicar las que más nos pueden servir, si ponemos:

crontab -e Creamos nuestro crontab o en su defecto, editamos el que teníamos.

crontab -l Listamos nuestro crontab.

crontab -r Borramos nuestro crontab.

Para editar nuestro crontab, ya sabemos , crontab -e y nos vamos a encontrar con varios campos para programar nuestras tareas,a cualquier minuto, en cualquier día de la semana , en cualquier mes… Todo a nuestro gusto. Un ejemplo de crontab podría ser esto:

###########################################
#crontab de ejemplo                       #
###########################################
#
# Definamos variables de entorno:
SHEL=/bin/bash
PATH=/bin:/usr/bin:/usr/local/bin
MAILTO=juananvicent
#
# Definamos las ordenes
#                 Dia              Dia de la
# Minuto  Hora    del mes  Mes     semana   Comando
# ------- ------- -------- ------- -------- --------
    5     9       *        *       *        cp /home/juananvicent/Documents /backups
    10    *       *        *       1-5      /home/juananvicent/laborables.sh

# Fin de crontab

Los campos son muy sencillos; en el ejemplo anterior tenemos una tarea programada, el minuto 5 de la hora 9 todos * los días del mes, todos los meses,y todos los días de la semana. Y otra programada el minuto 10 de todas las horas,todos los dias del mes,todos los meses, y del día 1 al 5 (1-5) de todas las semanas.

Si por ejemplo queremos que se ejecute cada cinco minutos bastaría cambiar el cinco por ésto */5 , o si lo que queremos es que se ejecute en diversos minutos los podríamos separar con una coma ; así 1,3,10,26 .

Tambien tenemos que definir nuestro PATH y la SHELL con la que vamos a trabajar (en este caso BASH) para evitarnos problemas.

Una vez programada nuestra tarea solo nos quedará guardar el archivo con el nombre por defecto y reiniciar el servicio sudo /etc/init.d/cron restart.

Listo!!Ya tenemos nuestro crontab en marcha!!!…

Normalmente y por norma general, cada vez que arrancamos nuestro sistema linux el crontab se pone en marcha, pero para asegurarnos podemos hacer desde una terminal ps -ef | grep cron en caso de que no este en marcha lo podemos poner nosotros  sudo /etc/init.d/cron start o en su defecto, en caso de querer detenerlo lo podemos hacer también  sudo /etc/init.d/cron stop .

Y hasta aquí toda la história del cron de momento, naturalmente exísten mas ficheros de configuración para el cron que no voy a entrar en detalle con ellos, si quereis mas información podeis ver el man de linux; man crontab o googlear un poco ya que existen montones de manuales por la red.

Más adelante plantearemos otras cositas donde entrará en juego nuestro crontab,sed pacientes.

Un Saludo a tod@s.

Juan Antonio Vicent.

2 respuestas a “Crontab

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s