Tareas programadas mediante Cron

Si habéis ido siguiendo mis pasos en este blog, en este momento teneis una Raspberry con XBian como sistema operativo, transmission como gestor de descargas, y FlexGet como buscador de enlaces. El tema es que según lo dejamos, si queremos que FlexGet realice una búsqueda debemos de iniciarla manualmente, lo que choca un poco con mi propósito de automatización de tareas. Así pues, lo que voy a explicaros hoy brevemente es cómo hacer que una tarea/programa/script se ejecute cada cierto tiempo de forma recurrente.

Lo bueno de usar Linux (o un sistema operativo basado en él) es que, al igual que otros sistemas, ya cuenta con un administrador de procesos, en este caso CRON. La idea es que cada cierto tiempo Cron llame a FlexGet para que éste compruebe si hay alguna serie disponible para bajar. Empecemos.

Lo primero es conectarse mediante ssh a nuestra Raspberry y después ejecutar el comando crontab -e

Imagen de crontab listo para añadir tareas

Ello nos permite editar el fichero de planificaciones. Si, por ejemplo, queremos que FlexGet se ejecute cada 30 minutos tendríamos que escribir lo siguiente al final del fichero: */30 * * * * /usr/local/bin/flexget execute

esta tarea se ejecutaría cada 30 minutos

La sintaxis de Cron consiste en cinco campos seguidos del comando a ejecutar. Estos campos representan respectivamente los minutos (0-59), las horas (0-23), el dia del mes (1-31), el numero de mes (1-12) y el día de la semana (0-6 con 0=domingo). Se puede utilizar el asterisco (*) como comodin. Así pues, el comando descrito arriba:

  • */30 le decimos que se ejecute cada 30 minutos (las “y media” y las “en punto”).
  • * todas las horas
  • * todos los días del mes
  • * todos los meses
  • * todos los días de la semana
  • /usr/local/bin/flexget execute ejecutar FlexGet.

Siguiendo lo descrito arriba, si quisiéramos entonces que por ejemplo se ejecutara cada dos horas, la cadena sería 0 */2 * * * /usr/local/bin/flexget execute

Ya solo nos queda guardar nuestro fichero como cuando usamos nano: CTRL+X > Yes > ENTER, y esperar a que llegue la hora indicada.

Si queremos comprobar que las ejecuciones se están llevando a cabo, podemos ejecutar el comando grep CRON /var/log/syslog que buscará las ejecuciones de Cron en el log del sistema.

Bucando las últimas ejecuciones de CRON en el log del sistema

Como veis me ha dado un error de permisos, nada que no se solucione poniendo un SUDO delante (!! sirve para repetir el último comando).

Y esto es todo, sencillo ¿verdad? además ahora que conocemos como configurar Cron podemos usarlo para que realice otras tareas que sean susceptibles de ser automatizadas.

 

Anuncios

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