Guía Básica de Cron y crontab en Linux
Guía Básica de Cron y crontab en Linux

Guía Básica: Crear y administrar trabajos de Cron en Linux

Cron es una de las herramientas más útiles de Linux y una de las favoritas de los desarrolladores, ya que permite ejecutar comandos automatizados en períodos, fechas e intervalos específicos utilizando tanto scripts de propósito general como específicos de tareas.

Dada la descripción, puedes imaginar cómo los administradores del sistema lo utilizan para automatizar tareas de copia de seguridad, limpieza de directorios, notificaciones, etc. En este artículo veremos los mejores ejemplos!

Los trabajos de Cron se ejecutan en segundo plano y comprueban constantemente el archivo /etc/crontab y los directorios /etc/cron.*/ y /var/spool/cron/. Los archivos cron no deben editarse directamente y cada usuario tiene un crontab único.

¿Cómo entonces se supone que debes crear y editar trabajos cron? Con los comandos crontab. El crontab es el método que utilizas para crear, editar, instalar, desinstalar y enumerar los trabajos cron.

El comando para crear y editar trabajos cron es el mismo y simple. Y lo que es aún mejor es que no es necesario reiniciar cron después de crear nuevos archivos o editar los existentes.

crontab -e
Iniciar con comando crontab
Iniciar con comando crontab

Simplemente elige la opción de editor que más te guste…

1. Sintaxis de Cron

Al igual que con cualquier lenguaje, trabajar con cron es mucho más fácil cuando entiendes su sintaxis y hay 2 formatos que debes saber:

A B C D E USUARIO /ruta/del/comando arg1 arg2 > Salida
O
A B C D E USUARIO /root/backup.sh > Salida

Explicación de la sintaxis cron anterior:

  • A: Rango de minutos: 0 – 59
  • B: Rango de horas: 0 – 23
  • C: Rango de días: 0 – 31
  • D: Rango de meses: 0 – 12
  • E: Rango de días de la semana: 0 – 7 . A partir del lunes, 0 o 7 representa el domingo.
  • USUARIO: reemplaza esto con tu nombre de usuario
  • /ruta/del/comando: el nombre del script o comando que deseas programar
  • Salida: > (opcional) puedes escribir la salida en un archivo o descartarla: Con > /dev/null 2>&1 se descartará.

Eso no es todo. Cron utiliza 3 símbolos de operador que te permiten especificar múltiples valores en un campo:

  • Asterisco (*): especifica todos los valores posibles para un campo.
  • Coma (,): especifica una lista de valores.
  • Guión (-): especifica un rango de valores
  • Separador (/): especifica un valor de paso.

Ahora que conoces la sintaxis y los operadores de Cron, veamos algunos ejemplos de cron.

2. Ejemplos de trabajo Cron


El primer paso para ejecutar los comandos cron es instalar tu crontab con el comando:

crontab -e
  • Ejecutar /root/backup.sh a las 3 am todos los días:
0 3 * * * /root/backup.sh
  • Ejecutar script.sh a las 4:30 pm el segundo de cada mes:
30 16 2 * * /ruta/script.sh
Correr o ejecutar script cada mes con crontab
Correr o ejecutar script cada mes con crontab
  • Ahora enviemos la tarea programada anteriormente hacía un archivo de salida:
30 16 2 * * /ruta/script.sh > ruta/archivo.log
Guardar salida de comando crontab
Guardar salida de comando crontab

Por cierto, el script anterior muestra la geolocalización de una IP. Revisa Cómo encontrar ubicación geográfica de IP en terminal Linux para más información 🙂

Y así, mostramos la salida de la ejecución de cron:

Ver ejecución de cron en archivo de salida
Ver ejecución de cron en archivo de salida
  • Sígamos, ejecutar /scripts/phpscript.php a las 10 pm durante la semana:
0 22 * * 1-5 /scripts/phpscript.php
  • Ejecutar perl.pl a los 23 minutos después de la medianoche, 2 am y 4 am, todos los días:
23 0-23/2 * * * /ruta/de/perl.pl
  • Ejecutar un comando de Linux a las 04:05 cada domingo:
5 4 * * sun /ruta/del/comandoLinux

3. Opciones de Cron


  • Listar trabajos cron:
crontab -l
O
crontab -u usuario -l
  • Eliminar todos los trabajos de crontab:
crontab -r
  • Eliminar trabajo de Cron para un usuario específico:
crontab -r -u usuario

4. Strings en Crontab

Las cadenas (strings) están entre las cosas favoritas del desarrollador porque ayudan a ahorrar tiempo al eliminar la escritura repetitiva. Cron tiene cadenas específicas que puedes usar para crear comandos más rápido:

  • @hourly: Ejecutar una vez cada hora, es decir, 0 * * * *
  • @midnight: Ejecutar una vez al día, es decir, 0 0 * * *
  • @daily: igual que la medianoche
  • @weekly: Ejecutar una vez cada semana, es decir, 0 0 * * 0
  • @monthly: Ejecutar una vez al mes, es decir, 0 0 1 * *
  • @annually: Ejecutar una vez al año, es decir, 0 0 1 1 *
  • @yearly: igual que @annually
  • @reboot: Ejecutar una vez en cada inicio

Por ejemplo, esta es la forma de hacer una copia de seguridad de tu sistema todos los días:

@daily /ruta/backup/script.sh

En este punto, tienes todo lo que necesitas para crear y administrar las tareas del sistema utilizando Cron. Ahora puedes comenzar a configurar y mantener varios entornos utilizando comandos programados.

¿Te ha gustado este artículo? Sígue este blog en su fanpage de FacebookTwitterInstagram y/o YouTube para que no te pierdas del mejor contenido informático y hacking!

¿Qué tan usuario de Cron eres? ¿Y hay algún detalle que puedas aportar al artículo? El cuadro de comentarios está abajo. ¡Y no volvides compartir este artículo! :’)

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda