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.
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.