Configuración del cron en linux

A veces necesitamos que nuestro servidor realice tareas de forma automática cada cierto tiempo, estas tareas se configuran con la herramienta crontab.

Cada usuario del sistema tiene su propio crontab a cual puede verse con crontab -l y puede editarse con crontab -e. Si somos root podremos editar el crontab de cualquier usuario añadiendo simplemente -u y el usuario.

Para escribir una tarea en el crontab tenemos que seguir el siguiente formato:

Esos 5 asteriscos que van antes del comando son por este orden:

  • Minutos: desde 0 al 59.
  • Horas: desde las 0 a las 23.
  • Día del mes: desde el 1 al 31.
  • Mes: desde el 1 al 12.
  • Día de la semana: desde 0 (domingo)  hasta el 6 (sábado).

Así pues si quisiéramos que se ejecutara un comando a las 3 y cuarto de la mañana los sábados de Febrero pondríamos lo siguiente:

Parece un poco confuso, este formato lo que hace es ejecutar si se cumplen todas las condiciones. Si os fijáis lo único que hemos hecho ha sido cambiar cada asterisco por su correspondencia, excepto el tercero que son los días del mes que hemos dicho todos. Esto se ejecutará cuando el reloj tenga los minutos en 15, la hora en 3, cualquier día del mes, en el mes de Febrero y que sea sábado.

Ahora vamos a ir un poco más allá, queremos que se ejecute a la 1 de la mañana y a las 4 de la tarde los martes:

Hay que fijarse que hemos puesto ahora una coma, para decir a la 1 de la mañana y a las 4 de la tarde (las 16 horas).

Y ahora vamos a ir un poco más allá, queremos que el comando se ejecute cada 15 minutos, pero solo a la 1 de la mañana y a las 4 de tarde los sábados.

Ahora además de la coma tenemos un /, esto significa cada 15, si quisieramos que fuera cada 2 pondríamos /2 y así todo el rato.

Y si ahora queremos que lo haga cada 15 minutos, pero empezando en el minuto 0 lo que haríamos sería:

Al final es simplemente pillarle el tranquillo a esto, un último ejemplo, queremos que se ejecute cada dos días a las 2 y 10 de la mañana

Por supuesto a partir de aquí podemos avanzar mucho más diciendo que se ejecute de forma anual @yearly, etc.. hay muchas más posibilidades, pero para un funcionamiento estándar aquí tenéis lo que necesitáis.

En cuanto al comando no es más que el comando que queráis ejecutar, por ejemplo:

Muy importante es siempre introducir el path completo en el crontab, esto nos va a ahorrar muchos dolores de cabeza y problemas futuros, recordad, siempre el path completo.

Y por último la salida, lo cual es muy importante, lo ideal es terminar con > /dev/null 2>&1, que viene a significar que no saque ni resultado ni error. Esto si lo desglosamos podemos leerlo así:

Para configurar el crontab en Neodigit es realmente fácil, hay que ir al alojamiento que tengamos, ya sea alojamiento suelto o esté en un multidominio o servidor cloud con panel, y ahí pincharemos en el botón alojamiento y la última opción es “Tareas de cron”, así de fácil y sencillo.

Localización del cron

Al entrar en Tareas de cron obtendréis la siguiente pantalla donde podréis introducir vuestro crontab.