Inicio > Gestión de paquetes y sistema > crontab

Guía completa del comando crontab: Cómo programar tareas repetitivas

`crontab` es un comando utilizado en sistemas Linux/Unix para programar la ejecución periódica de comandos o scripts en momentos específicos definidos por el usuario. Juega un papel muy importante al automatizar tareas repetitivas como el mantenimiento del sistema, copias de seguridad y sincronización de datos.

Descripción general de crontab

crontab es la abreviatura de 'cron table', un archivo que contiene las tareas programadas del usuario. Cada línea de este archivo define un trabajo (job), y el demonio cron lee este archivo para ejecutar los trabajos en los momentos determinados.

Estructura de los campos de crontab

Cada línea del archivo crontab está compuesta por 6 campos. Los primeros 5 campos definen el tiempo de ejecución, y el último campo define el comando a ejecutar.

Detalles de los campos de tiempo
Campo Descripción Rango
1 Minuto (Minute) 0-59
2 Hora (Hour) 0-23
3 Día (Day of month) 1-31
4 Mes (Month) 1-12
5 Día de la semana (Day of week) 0-7 (0 y 7 son domingo)
6 Comando Comando o script a ejecutar

Caracteres especiales

Se pueden utilizar caracteres especiales en los campos de tiempo para especificar los tiempos de manera más flexible.

  • `*`: Todos los tiempos (ej: cada minuto, cada hora)
  • `,`: Especificar múltiples valores (ej: `1,3,5` -> minutos 1, 3, 5)
  • `-`: Especificar un rango (ej: `10-15` -> de 10 a 15 minutos)
  • `/`: Especificar un intervalo (ej: `*/10` -> cada 10 minutos)

Opciones principales

Explora las opciones de gestión de archivos de crontab, que son la función clave del comando crontab.

1. Gestión de archivos de crontab

2. Gestión de usuarios

Comando generado:

Combina los comandos.

Descripción:

`crontab` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos comunes

Aprende a configurar diversas tareas repetitivas utilizando crontab.

Ejecutar script de respaldo a las 2:30 AM todos los días

crontab -e
30 2 * * * /home/user/backup.sh

Configura la ejecución del script `/home/user/backup.sh` a las 2:30 AM todos los días.

Actualizar sistema a las 8 AM cada lunes

crontab -e
0 8 * * 1 sudo apt update && sudo apt upgrade -y

Actualiza los paquetes del sistema a las 8 AM cada lunes. (basado en Ubuntu/Debian)

Limpiar archivo de registro cada 10 minutos

crontab -e
*/10 * * * * echo '' > /var/log/app.log

Elimina el contenido del archivo `/var/log/app.log` cada 10 minutos.

Reiniciar servidor web a una hora específica

crontab -e
0 4 1 * * sudo systemctl restart nginx

Reinicia el servidor web (nginx) a las 4 AM el primer día de cada mes.

Ejecutar tarea cada hora desde las 6 AM hasta las 6 PM

crontab -e
0 6-18 * * * /path/to/myscript.sh

Ejecuta `myscript.sh` a cada hora en punto desde las 6 AM hasta las 6 PM.

Instalación de crontab (si es necesario)

Generalmente está preinstalado en la mayoría de las distribuciones de Linux, pero en algunas instalaciones mínimas puede ser necesario instalar el paquete del demonio cron.

Debian/Ubuntu

sudo apt update
sudo apt install cron

Instala el demonio cron en sistemas basados en Ubuntu o Debian.

CentOS/RHEL/Fedora

sudo yum install cronie
sudo systemctl enable crond
sudo systemctl start crond

Instala el demonio cron en sistemas basados en CentOS, RHEL o Fedora.


comandos relacionados

Son comandos que son funcionalmente similares o que se usan juntos con frecuencia.


Comandos de la misma categoría