Inicio Apuntes FPApuntes DAW Programar tareas Crontab en Ubuntu

Programar tareas Crontab en Ubuntu

Publicado por entreunosyceros
Publicado el: Última actualización:

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

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:

sudo crontab -l

… y para editarlos:

sudo crontab -e

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.

* * * * * /bin/ejecutar/scriptdeturno.sh

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:

* * * * * /bin/ejecutar/scriptdeturno.sh

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:

45 5 * * 1 /bin/ejecutar/scriptdeturno.sh

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:

45 5 * * 1-6 /bin/ejecutar/scriptdeturno.sh

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

0,10,20,30,40,50 3 * * 1-5 /bin/ejecutar/scriptdeturno.sh

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

*/5 3 * * 1-5 /bin/ejecutar/scriptdeturno.sh

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:

@midnight /bin/ejecutar/scriptdeturno.sh

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

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

2 Comentarios

Ramon 16 diciembre, 2018 - 3:32 PM

Pues que quieres que te diga, llevo uns 10 tutoriales y ninguno explica como cojones se modifica el puto crontab -e, tras abrir una ventana de terminal y ejecutar el puto crontab -e, para guardar los cambios no hay absolutamente ninguna información. Estoy hasta la polla de esta mierda de sistema operativo que espero sólo utilizar esta vez en mi vida para solucionar esta mierda de problema.
Sencillísimo, los cojones.

Respuesta
sapoclay 16 diciembre, 2018 - 4:45 PM

Pues que quieres que te diga, igual es que no sabes leer. La terminal igual se te queda un poco grande. Quizás deberías probar con una intefaz gráfica, que para alguien con tu nivel de paciencia es posible que se adapte mejor.

Y si no, puedes utilizar eso que llaman google.com para encontrar lo que buscas. Aun que dudo que encuentres exactamente lo que quieres. Tendrás que molestar la neurona y leer un poco.

Otra opción será esa cosa que se llaman páginas man (prueba a escribir en una terminal man crontab, verás que sorpresa!!).

No dejes que la ignorancia empañe tu buen juicio. Salu2.

Respuesta
Resumen de privacidad
cookies entreunosyceros

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible.

La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudarnos a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal de ningún tipo.

Tienes toda la información sobre privacidad, derechos legales y cookies en nuestra página sobre la política de privacidad o en la página sobre nuestra política de cookies.

Cookies necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de terceros

Esta web utiliza las siguientes cookies adicionales:

- Mailchimp: Recordar si ya estás suscrito al boletín de noticias y sino ofrecértelo al salir.

- Accesibilidad: Para saber tus ajustes de accesibilidad en cada visita.

- Comentarios: Saber si has leído y aceptado nuestra política de privacidad a la hora de dejar un comentario en la web.

- Google Analytics: Localización para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

- Goggle Adsense: Anuncios personalizados según tu geolocalización y preferencias.

Dejar estas cookies activadas nos permite mejorar nuestra web.

Adblock Detectado!!

Ayúdanos deshabilitando la extensión AdBlocker de tu navegador para visitar esta web.
Si no sabes hacerlo en Chrome, consulta el siguiente enlace. Si utilizas Firefox, puedes consultar este otro enlace.
Esto mejorará tu experiencia en este sitio web.