Guía completa de Cron Job para principiantes

Guía completa de Cron Job en Linux para principiantes en 5 pasos

En muchas ocasiones, necesitamos realizar tareas repetitivas dentro de un sistema operativo, hecho que resulta tedioso, además que consume tiempo valioso que podríamos emplear en otras tareas.

Por esa razón, y en caso de que seas usuario de Linux, te tenemos una buena noticia: existe una forma muy rápida y fácil de programar tareas repetitivas. Esta herramienta se llama Cron Job y por eso te traemos hoy una guía completa de Cron Job en Linux para principiantes.

¿Qué es Cron Job?

Cron Job en linux es una herramienta que permite programar y ejecutar tareas específicas dentro de nuestro sistema operativo Linux de forma automática. Esto, dentro de un periodo de tiempo determinado por el usuario.

La utilidad de Cron Job en linux se basa en la automatización de procesos que serán ejecutados en un momento determinado. Esto ayuda a que podamos atender otras tareas al mismo tiempo que nuestro sistema operativo se encuentra realizando la tarea programada en Cron Job.

Estas tareas pueden ser ejecutadas en cualquier momento del día, semana, minuto o año; por medio de la configuración de Cron Job en linux, pudiendo incluso ejecutar Scripts dentro de nuestro sistema operativo.

Usos que puede tener Cron Job 

Si quieres implementar Cron Job, posiblemente te preguntes: ¿Qué tipo de tareas puedo realizar con los Cron Job en linux? Y la respuesta más simple es que básicamente cualquier tipo de tarea puede ser realizada por medio de Cron Job.

Con una buena configuración de los Cron Job en linux, podremos realizar una gran variedad de tareas, pero estas son las más comunes:

  • Limpieza de bases de datos
  • Generación de estadísticas e informes
  • Publicación automática de entradas
  • Subida de contenido a un sitio web
  • Envío de Newsletters
  • Generación de facturas (Las facturas se pueden generar y enviar de forma automática)
  • Copia de seguridad de bases de datos
  • Aprendizaje automatizado
  • Actualizaciones de software
  • Ejecutar procesos y scripts

Cualquier tarea que podamos realizar dentro de nuestro sistema operativo puede ser automatizada, programada y ejecutada por medio de Cron Job, en cualquier momento del día.

¿Cómo funciona una tarea en Cron Job en linux? 

Para que una tarea Cron Job funcione, es necesario que exista un comando establecido para que el Cron Daemon pueda realizar la tarea Cron en segundo plano (En Windows esta tarea se llama Servicio). 

Las tareas Cron Job en linux se encuentran la mayor parte del tiempo en estado de reposo, a la espera de que se cumpla la condición que las ejecute cuando son programadas. En este caso, será la fecha establecida para la realización de la tarea Cron Job. 

Una tarea Cron Job se configura dentro de una tabla llamada “CronTab”, en la cual se enumera la fecha, la hora y la tarea que el sistema debe ejecutar en el momento establecido por el usuario.

Para definir una tarea Cron Job, se debe hacer por medio de una sintaxis específica que debe ser definida dentro del archivo de configuración Cron, el cual estará guardado dentro de la ubicación del sistema “/etc/crontab” o “/etc/cron.d/” dentro del directorio raíz de Linux.

El archivo CronTab se encuentra compuesto por seis columnas, las cuales deben contener la siguiente información:

  • Minuto.
  • Hora.
  • Día del mes.
  • Mes del año.
  • Día de la semana.
  • Comandos que queremos ejecutar.

¿Cómo instalar Cron Job en Linux?

Si quieres utilizar Cron Job, lo primero que debes hacer es instalarlo dentro de tu sistema operativo. En este caso, utilizamos Ubuntu 18.04 LTS. En la mayoría de las distribuciones de Linux, ya viene una versión de Cron instalada. De lo contrario, ejecuta los siguientes pasos: 

Paso 1: Preparar el sistema

Antes que nada, necesitamos actualizar la lista de paquetes disponibles para nuestro sistema operativo, por lo que ejecutaremos el siguiente comando en la terminal de nuestra distribución Linux:

sudo apt update 

Actualiza el índice de paquetes locales de nuestro sistema 

Luego de actualizar el listado de los paquetes locales disponibles en nuestro sistema operativo, procedemos a actualizar todos los paquetes por medio del siguiente comando:

sudo apt upgrade 

Comando para actualizar los repositorios del sistema a su última versión 

Paso 2: Instalar Cron Job

Instalar Cron Job en Linux en muy fácil. Para comenzar, solo deberás abrir una terminal e ingresar el siguiente comando: 

sudo apt install cron

Comando para la instalación de Cron

A continuación, estableceremos Cron Job como una función que pueda seguir ejecutándose en segundo plano mientras estemos utilizando nuestro sistema operativo, para lo cual ejecutamos a su vez el siguiente comando en nuestra terminal: 

sudo systemctl enable cron

Comando para establecer a Cron Job como una función en segundo plano

Una vez finalizado el proceso de instalación, aparecerá un mensaje en la pantalla de la terminal de usuario avisando que Cron Job fue instalado finalmente, y que nuestro sistema operativo Linux ya está listo para programar tareas.

¿Cómo configurar Cron Job en Linux?

¡Ya tienes instalado Cron Job! Pero seguramente quieres programar tus primeras tareas dentro de esta herramienta, por lo que necesitas configurar Cron Job en Linux. Entonces, para continuar con esta guía completa de Cron Job para principiantes, sigue estas instrucciones: 

Establece un editor de texto

Para crear una tarea Cron Job, escribe en la terminal el comando “crontab”, el cual debe abrir un editor de texto. En caso de no tener acceso al editor de texto del sistema, deberás establecer uno. 

En la pantalla de la terminal, aparecerán diferentes opciones para establecer un editor de textos predeterminado. Para elegir uno solo, deberás escribir en la terminal el número que aparece en pantalla al lado del editor de textos que desees elegir.

Mensaje en la terminal de Cron Job
Mensaje en la terminal de Cron Job

Crear una tarea Cron Job

Si ya estableciste tu editor de textos predeterminado, debes escribir nuevamente crontab -e en la terminal de Linux. Esto abrirá el editor de texto, en el que tendrás que escribir la sintaxis de tu tarea Cron Job.

La sintaxis de un comando Cron Job se encuentra establecida de la siguiente forma: 

0 2 * * 0 /ruta/para/backup.sh

Ejemplo de comando Cron Job

En el ejemplo, podemos ver una tarea Cron Job en la que se establece el tiempo y el comando que deberá ejecutar nuestro sistema operativo Linux cuando se cumpla ese período. En este caso, el backup se generará todos los domingos a las 2:00 AM.

¡Nota! Cuando se coloca un asterisco (*) en el espacio en donde debería ingresar el tiempo y fecha en que se deberá ejecutar una tarea Cron Job, el sistema tomará la fecha y hora del sistema para la ejecución de esta tarea.

Ahora bien, la sintaxis de un comando Cron Job se debe establecer de la siguiente forma: 

  • Primer espacio: Minuto (0 – 59).
  • Segundo espacio: Hora (0 – 23).
  • Tercer espacio: Día del mes (1 – 31).
  • Cuarto espacio: Mes del año (1 – 12).
  • Quinto espacio: Día de la semana (0 – 6, con 0 = domingo).
  • Sexto espacio: Comando a ejecutar.

Cada uno de estos datos deben ser escritos de forma continua y separados por un espacio, para luego ser ejecutados.

cron job en linux
Esquema gráfico de una estructura para comandos Cron Job

Si no te quedó claro el ejemplo anterior, fíjate en este esquema, el cual debes seguir para ejecutar tu tarea Cron Job:

Minuto + Hora + Día del mes + Mes + Día de la semana + Comando 

Esquema paso a paso de los datos necesarios para una tarea Cron Job

Una vez establecida nuestra tarea Cron Job, guardaremos los cambios y cerraremos nuestro editor de texto, para simplemente esperar que nuestra tarea establecida sea ejecutada por el sistema operativo Linux. 

Comandos de Cron Job que puedes utilizar

En esta guía te explicamos el funcionamiento básico de una tarea Cron Job y cómo puedes crear una, pero seguramente te gustaría saber qué otros comandos puedes utilizar para crear, editar o eliminar diferentes tareas Cron Job en Linux. 

  • crontab -i : Muestra las tareas Cron Job establecidas por el usuario.
  • crontab -e : Permite editar o crear las tareas establecidas en el sistema.
  • crontab -r : Facilita eliminar las tareas Cron Job programadas en el sistema.
  • man crontab : Permite ver a detalle las tareas Cron Job programadas.

Estos son la mayoría de comandos Cron Job que puedes utilizar para programar casi cualquier tarea Cron Job en Linux.

Conclusión 

Esperamos que esta guía de Cron Job para principiantes te pueda ser de gran utilidad al momento de programar y automatizar tus tareas, lo que te permitirá ahorrar mucho tiempo y atención al momento de trabajar con Linux. 

¿Buscas un hosting potente que te permita trabajar tareas de cron job en linux? Prueba con DonWeb Cloud, y bríndale a tu aplicación todo el poder de la nube.

Gabriel Cánepa
Gabriel Cánepa

Gabriel trabaja actualmente como desarrollador full-stack en Scalar, una firma que se dedica a hacer valuaciones de empresas. Es Administrador de Sistemas certificado por la Fundación Linux y previamente ha escrito un gran número de artículos y contenidos técnicos sobre el tema para: DigitalOcean, Linode, Carrera Linux Argentina y Tecmint.

Tiene una certificación en programación de la Universidad de Brigham Young-Idaho, y está completando las carreras de programador y analista de sistemas en la Universidad Nacional de Villa Mercedes (UNViMe).

En su tiempo libre, Gabriel disfruta leyendo libros de Stephen R. Covey, tocando piano y guitarra, y enseñando conocimientos de programación a su dos hijas.