crontab

Programar tareas Crontab en Ubuntu

El post de esta noche lo dejo aquí para poder consultarlo cuando me haga falta. Acabo de terminar la guía EPG para Kodi. Para tenerla actualizada es necesario descargarla a diario, y para esto me hice un pequeño script que se encarga de ello. El problema (más bien la molestia) viene dado por que la verdad es que no me apetece tener que estar todos los días ejecutando dicho script. Por ello me he decidido a buscar un poco de información acerca de las tareas crontab, que la verdad es que las tenía abandonadas desde hace tiempo. Siempre está bien tener notas a mano para realizar pequeñas tareas como esta.

crontab

La herramienta en cuestión que voy a utilizar es una muy útil, llamada Cron. Sirve para programar y automatizar tareas en Ubuntu. Cron resulta muy útil a la hora de trabajar con un sistema operativo Debian (o derivados). Siempre es conveniente saber sacarle el máximo provecho a este tipo de funciones que nos ofrece. Si queremos, por ejemplo, que cada X horas se ejecute un archivo PHP, un script o cualquier cosa que necesitemos, pues no tenemos por qué dejar de hacer otras cosas para ejecutarlo manualmente. No tiene sentido. Para esto está Cron.



Bueno, ahora vamos al turrón del asunto. Evidentemente aquí no estará todo lo que podemos hacer con esta herramienta. Pero sacarle el máximo partido ya depende de las necesidades e imaginación que cada uno le ponga al asunto. Si alguien necesita más información, google será tu amigo.

CRONTAB

El comando crontab se utiliza en sistemas UNIX para programar la ejecución de otros comandos, es decir, para automatizar tareas. Podemos ver los crontabs que se están programados y también editarlos.

Para verlos, utilizamos el siguiente comando:

… y para editarlos:

FORMATO DE LAS TAREAS

Las tareas cron siguen una determinada sintaxis. Tienen 5 asteriscos seguidos del comando a ejecutar. Vamos a ver a continuación para qué sirve cada cosa.

Los 5 asteriscos

De izquierda a derecha, los asteriscos representan:

  1. Minutos: de 0 a 59.
  2. Horas: de 0 a 23.
  3. Día del mes: de 1 a 31.
  4. Mes: de 1 a 12.
  5. Día de la semana: de 0 a 6, siendo 0 el domingo.

Si se dejan los asteriscos, quiere decir:  Se ejecutará  “cada” minuto, de cada hora, de cada día de mes, de cada mes o día de la semana. Por ejemplo:

Este escript se ejecutará:

  • Cada minuto
  • De cada hora
  • De cada día del mes
  • De cada mes
  • De cada día de la semana

Otro ejemplo, para aclararlo un poco más:

Estamos diciendo que queremos que este script se ejecute:

  • En el minuto 45
  • De las 5 de la noche
  • De cada día del mes
  • De cada mes
  • Sólo si es lunes

En resumen, todos los viernes a las 5:45 horas se ejecutará el script.

Intervalos de tiempo

Para ejecutar un script de lunes a sabado a las 5:45 horas:

En el caso de que necesitemos ejecutar un script de lunes a viernes cada 10 minutos desde las 3:00 horas durante una hora:

Esto quizá puede ser largo. La sintaxis de crontab permite lo siguiente. Imaginemos que queremos ejecutarlo cada 5 minutos:

PALABRAS RESERVADAS DE CRON

Si has programado alguna vez, sabrás que muchas veces nos encontramos con palabras reservadas para facilitar el uso de programas o lenguajes de programación. Y cron no iba a ser una excepción, por eso aquí muestro algunas de las más comunes (que para lo que necesito me vienen muy bien). Aquí cada cual que lo configure según lo que necesite:

  • @reboot: se ejecuta una única vez al inicio.
  • @yearly/@annually: ejecutar una vez cada año.
  • @monthly: ejecutar una vez al mes.
  • @weekly: una vez a la semana.
  • @daily/@midnight: una vez al día. Medio día/ media noche.
  • @hourly: cada hora.

Si quisiésemos ejecutar el script a la media noche todos los días utilizaríamos:

Y con esto yo cubro la necesidad que tenía de automatizar mi script para actualizar la guía de Kodi. Seguro que le dais uso a esta útil herramienta. Yo lo hago y va de maravilla.

Fuente

Deja un comentario