Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Utilizar Crontab para Programacion de Tareas en Linux

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 3

UTILIZAR CRONTAB PARA PROGRAMACION DE TAREAS EN LINUX

En los sistemas operativos Windows existe algo similar denominado Tareas


Programadas. En esta ocasión el proceso no se realiza de forma gráfica y se tiene
que realizar a través de terminal. Por lo tanto, si tienes miedo a este elemento, este
artículo es la mejor forma de perder ese temor y coger soltura.

Hemos mencionado con anterioridad Cron y Crontab. En primer lugar, vamos a ver
que diferencias existen entre ambos elementos. Posteriormente aprenderemos a
agregar tareas y para finalizar nos adentraremos en la gestión de los jobs (trabajos)
de Cron.

Diferencias entre Cron y Crontab

Aunque pueda parecer que estamos hablando de lo mismo, no es así, y se podrían


considerar dos elementos dependientes uno del otro. Para ser más claros, son los
encargados de que la programación de tareas en sistemas Linux sea posible.

Qué es Cron

Es un demonio (proceso en segundo plano) que se ejecuta desde el mismo instante


en el que arranca el sistema. Comprueba si existe alguna tarea (job) para ser
ejecutado de acuerdo a la hora configurada en el sistema. Muy importante que la
zona horaria esté bien configurada ya que de lo contrario las ejecuciones puede que
no coincidan con los ajustado.

En función de la distribución, se inicia utilizando las carpetas /etc/rc.d/ o /etc/init.d y


cada minuto comprueba los ficheros /etc/crontab o /var/spool/cron es busca de
posibles ejecuciones (ahora empieza todo a cuadrar).

Qué es Crontab

Un archivo de texto. Por simple que parezca la definición es así. Aunque es verdad
que se trata de un archivo con contenido especial. Posee una lista con todos
los scripts a ejecutar. Generalmente cada usuario del sistema posee su propio
fichero Crontab. Se considera que el ubicado en la carpeta etc pertenece al
usuario root.

Para generar el archivo propio, cada usuario deberá hacer uso del comando crontab
(sí, es el mismo nombre).
Agregar tareas a Crontab

Partiendo de que podemos ejecutar tareas, en primer lugar, vamos a configurar


un script muy sencillo que llamaremos consulta.sh:

#!/bin/bash

#script de ejemplo

sudo ls -l / > archivoResultado

Con la ayuda del manual que hemos citado con anterioridad cambiamos los
permisos:

chmod ugo+x consulta.sh

Este aspecto es muy importante, ya que de lo contrario el comando nunca será


ejecutado.

Ha llegado el momento de editar el fichero que posee las tareas. Para ello nos
vamos a ayudar del comando crontab -e. Nos encontramos la siguiente estructura:

5 asteriscos y el comando a ejecutar. Cada uno de los 5 asteriscos significa:

 m: minuto

 h: hora

 dom: día de la semana

 mon: mes

 dow: día del mes


Lo valores que pueden adoptar cada una de estas variables se encuentran en la
imagen. Por ejemplo, en el caso del último, se permite la utilización del nombre de
los días escritos en inglés.

Aunque en la imagen anterior no aparezca, es necesario indicar entre el comando y


el último asterisco (el día) el propietario del archivo.

Para que quede todo claro, vamos a utilizar algunos ejemplos:

Ejecutar todos los días a las 7 de la tarde

00 19 * * * usuario /ubicacion/del/script/consulta.sh

Ejecutar todos los domingos a las 7 de la tarde:

00 19 * * 0 usuario /ubicacion/del/script/consulta.sh

Ejecutar el script todos los 4 de febrero a las 7 de la tarde:

00 19 4 2 * usuario /ubicacion/del/script/consulta.sh

Hay que decir que en Linux existen algunas cadenas de texto reservadas para
ejecutar procesos durante determinados periodos:

 @reboot: Ejecuta una vez y nada más iniciarse el equipo.

 @yearly: ejecuta sólo una vez al año: 0 0 1 1 *

 @monthly: ejecuta una vez al mes y el primer día: 0 0 1 * *

 @weekly: Todas las semanas, el primer minuto de la primer hora de la


semana: 0 0 * * 0.

 @daily: todos los días a las 12 de la noche: 0 0 * * *

 @midnight: Tiene el mismo efecto que el anterior.

 @hourly: todas las horas durante su primer minuto: 0 * * * *

Aunque os hemos puesto cuál sería el formato, al hacer uso de crontab -e se pueden
utilizar estos términos para definir el periodo.

También podría gustarte