Linux

Como usar Cron y Crontab en Linux

Es muy probable que todos hayan escuchado o utilizado en algún momento las tareas programadas de Windows, las cuales no son más que la configuración para que un archivo, programa o proceso, se ejecute en un tiempo determinado y bajo condiciones especificadas por nosotros los usuarios. Este mismo concepto aplica para Linux, sin embargo, el proceso no se realiza a través del entorno gráfico, para ello usamos la terminal. Por este motivo hoy traemos para ti la explicación de cron y crontab que son unos comandos esenciales para llevar a cabo estas tareas.

Cron y Crontab

crontab

¿ Qué es Cron ?

Su nombre proviene de la expresión griega chronos y su significado es tiempo. Es uno de los demonios o “daemon” (proceso en segundo plano) más importantes y habituales en el sistema. Su ejecución comienza desde el primer instante de arranque.

Su función principal es encargarse de lanzar las tareas programadas en fechas específicas y de forma automática y repetitiva. La definición de las tareas se localiza en el archivo /etc/crontab. El funcionamiento es simple, verifica si existen tareas (jobs) para su ejecución de acuerdo al horario del sistema. Lo anterior nos lleva a resaltar que es importante mantener ajustada correctamente la zona horaria del sistema, pues de lo contrario no obtendremos los resultados esperados con cron.

De acuerdo a la distribución que estemos utilizando en Linux, se puede inicializar usando los directorios /etc/init.d o etc/rc.d/ yen cada minuto realiza un chequeo de los /etc/crontab o /var/spool/cron ubicando posibles ejecuciones pendientes.

¿ Qué es Crontab ?

Es tan simple como un archivo de texto. Si, aunque no lo parezca. Lo que lo hace especial es su contenido. Su contenido especifica una lista de todos los scripts a ser ejecutados por el sistema. Así como también especifica las fechas, horas y los permisos de ejecución delos mismos.

En Linux, generalmente cada usuario tiene su propio archivo crontab y el que está ubicado en el directorio etc, es propiedad del usuario root.

Para generar tu propio archivo (en caso de no ser usuario root) solo haces uso del comando:

[php] crontab [/php]

Crontab es la forma más simple para administrar las tareas de cron en sistemas de tipo multiusuario, ya sea como usuario root o simple usuario de sistema.
A continuación, les dejo una pequeña ayuda con respecto a la definición del cron dentro del crontab, con un ejemplo de muestra. (Tiene unos # adelante para que lo pueden colocar al principio de su archivo crontab como comentario y así siempre lo tendrán a la mano ? )

 # Ejemplo de definición de cron:
 # .---------------- minutos (0 - 59)
 # | .------------- horas (0 - 23)
 # | | .---------- días del mes (1 - 31)
 # | | | .------- meses (1 - 12) O jan,feb,mar,apr ...
 # | | | | .---- dias de la semana (0 - 6) (Sunday=0 or 7)
 # | | | | |
 # * * * * * USER COMMAND
 MAILTO="cron@localhost"
 SHELL=/bin/sh

Donde cada asterisco representa una fracción de tiempo que determina el momento de la ejecución, seguido del usuario bajo el cual se realizara la ejecución (ese usuario puede ser root o uno que tenga los permisos de ejecución asignados) y por último el comando a ejecutar.crontab

Administración de los jobs del Cron

Como ya has notado, el funcionamiento es muy simple. Para cerrar el tema, les mostrare los comandos básicos y esenciales para controlar y verificar el cron de nuestro sistema Linux.

Si lo que quieres es remplazar el archivo existente por uno definido por otro que tu escojas, utilizas el siguiente comando:

[php] crontab (nombre-archivo)[/php]

Si queremos o requerimos modificar el archivo actual usamos el siguiente:

[php]crontab -e[/php]

Para obtener la lista de todas las tareas que se encuentran configuradas en crontab, hacemos uso de:

[php]crontab -l[/php]

Para eliminar el actual crontab del sistema, tenemos:

[php]crontab -d[/php]

Puede interesarte leer: Guía rápida de comandos básicos para Ubuntu y Linux

Otra operación que podemos realizar es definir el directorio donde se almacenará el crontab. Es importante aclarar que debemos poseer permisos de ejecución en el directorio escogido, de lo contrario no funcionara. El comando para definirlo es el siguiente:

[php]crontab -c dir[/php]

Y, por último, podemos hacer gestión sobre el crontab existente de otros usuarios pertenecientes al sistema.

[php]crontab -u usuario[/php]

Como habrás visto, no resulta nada complicado la programación de tareas en Linux y con todos los puntos claros se puede realizar de una forma rápida.

Espero que les haya sido útil el artículo. ¡Puedes dejar en los comentarios tus inquietudes o cualquier buena práctica que tengas para la programación de tu cron en Linux! ?

Yeraldine

Lcda. en Computación, Programadora, Apasionada por el Desarrollo Web. A veces Bellydancer, otras veces Yogui. Amo viajar, los libros y la música. En mis RRSS: @yerita02
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en info@profesionalreview.com
Botón volver arriba