INICIADOS: El crontab – Procesos automatizados

El servicio cron nos permite definir tareas automatizadas para que nuestro sistema Linux las ejecute sin necesidad de que tecleemos los comandos continuamente. c

El Cron nos permite establecer la hora, la fecha y la periocidad de la ejecución del comando, permitiendo automatizar tareas repetitivas y facilitando nuestra labor diaria.

Cron puede ser interpretado como un servicio de Linux que se carga durante el proceso de arranque/boot de nuestro sistema.

Para ejecutar tareas, cron usa un archivo conocido como crontab. El archivo crontab esta, generalmente, localizado en el directorio /etc. En /var/spool/cron/ localizamos tambien ficheros de cron que hacen relación a un usuario en concreto. (ver directorio)

Como usar el Crontab

El primer paso es abrir crontab. Para ello, podemos utilizar cualquir editor de textos, como vi, joe o emacs. Tambien podemos editar crontab tecleando “crontab -e” utilizando de este modo el editor vi para su edición.

El crontab utiliza el siguiente formato.

[minutos] [horas] [dias] [mes] [dias de la semana] [usuario] [comando]

minutos: 0-59
horas: 0-23
dias: 1-31
mes: 1-12
Dias de la semana: 0-6 (de domingo a sábado)
Usuario: usuario con el que se lanza el comando
Comando: comando a lanzar

El orden de los valores debe ser mantenido. En lugar de un valor, podemos usar tambien el caracter “*” el cual sera utilizado como comodín, es decir, si ponemos en dia de la semana un *, significara que se lanzara cada dia, si ponemos en el de los minutos, se lanzara el comando a cada minuto.

Tambien es posible especificar rangos con ““, si ponemos en dias de la semana, 0-3, el comando se ejecutara, domingo, lunes, martes, miercoles. Igualmente podemos indicar dias o horas separadas, utilizando la “,“, asi pues usando 0,3 el comando solo será lanzado los dias domingo y miercoles.

Ejemplo:
(Teniendo en cuenta que disponemos de un script en nuestro directorio personal llamado borrado.sh con sus respectivos permisos)
Editamos el crontab y añadimos:

$ crontab -e

# comentario sobre la tarea
30 22 1,15 * * cristiansan /home/cristiansan/borrado.sh

Esto ejecutaria el script borrado.sh a las 22:30 de cada dia 1 y 15 de cada mes, sin tener en cuenta el dia de la semana.

Cabe tener en cuenta además los ficheros /etc/cron.deny y /etc/cron.allow.

cron.deny nos permite definir usuarios los cuales no tendran acceso a crontab. Su formato es muy sencillo, un usuario por linea. El espacio en blanco no esta permitido, tampoco es necesario reiniciar el demonio cron tras el cambio realizado, estos ficheros son leidos por crontab cuando se intenta acceder a el.

Root siempre debe disponer de acceso a cron. Si el fichero cron.allow existe, solo los nombres que hay en dicho fichero tendrán acceso a cron, y cron.deny será ignorado.

Si cron.allow no existe, cron consultará cron.deny y denegará el acceso a los usuarios que aparezcan en este.

–> ¿Mas información? Pasate por la wikipedia<–

2 comentarios to “INICIADOS: El crontab – Procesos automatizados”

  1. pirlo Says:

    una pequeña pregunta, como se que el servicio de crontab esta arriba, lo que pasa es que tengo mi crontab pero de un momento a otro dejo de funcionar, ya no me genera las tareas que tengo en el crontab, pero si las corro manualmente si funciona.

    no se si exista algun servicio que toque subir o si se puede mirar algun proceso.

    gracias

  2. cristiansan Says:

    Hola Pirlo,

    Para comprobar que cron este levantado, realiza:

    $ ps -ef | grep cron

    si no te aparece el proceso lanzado, borra o mueve el FIFO (puede q ello no sea necesario) y lanza de nuevo el cron con:

    $ /usr/sbin/cron

    Haz de nuevo el ps -ef | grep cron, deberia aparecer de nuevo tu cron levantado.

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 )

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 )

Google+ photo

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

Conectando a %s


A %d blogueros les gusta esto: