CronTab (abreviatura de “cron table”) es una utilidad en sistemas Unix y Linux que permite a los usuarios programar la ejecución de comandos o scripts en horarios específicos.
Es especialmente útil para realizar tareas repetitivas, como la ejecución de scripts, la actualización del sistema o la gestión de backups.
La utilidad cron
, que es el demonio que maneja estas tareas programadas, utiliza archivos de configuración llamados “tablas de cron” para determinar qué comandos ejecutar y cuándo.
Cómo funciona Crontab
CronTab nos permite crear y gestionar tareas programadas mediante una serie de archivos de configuración. Cada línea en un archivo de Crontab especifica un comando a ejecutar y un horario específico para su ejecución.
La sintaxis básica de una línea en Crontab es:
* * * * * /ruta/al/comando
| | | | |
| | | | +---- Día de la semana (0 - 7) (domingo es 0 o 7)
| | | +------ Mes (1 - 12)
| | +-------- Día del mes (1 - 31)
| +---------- Hora (0 - 23)
+------------ Minuto (0 - 59)
Cómo usar Crontab en Raspberry Pi
En primer lugar, tenemos que editar el archivo de Crontab de tu usuario actual, usando el comando:
crontab -e
Esto abrirá el archivo de Crontab en el editor de texto predeterminado. Si no tenemos ninguno, la primera vez nos preguntará cual queremos usar.
Editar el Crontab de Otro Usuario
Si necesitas editar el Crontab de otro usuario, usa:
sudo crontab -u usuario -e
Donde usuario
es el nombre del usuario cuyo Crontab deseas editar.
Crear una nueva tarea programada
Para añadir una tarea programada, simplemente tenemos que añadir una línea para especificar una nueva tarea programada.
Por ejemplo, para ejecutar un script llamado backup.sh
todos los días a las 2:30 AM, añadiríamos la siguiente línea:
30 2 * * * /home/pi/scripts/backup.sh
Esta línea significa:
- 30: Ejecutar el minuto 30.
- 2: Ejecutar a las 2 AM.
- *: Cualquier día del mes.
- *: Cualquier mes.
- *: Cualquier día de la semana.
Por último, guardamos los cambios y salimos del editor. Si estás usando nano
, puedes hacer esto presionando Ctrl + X
, luego Y
para confirmar y Enter
para guardar.
Ejecutar una tarea al inicio
Una de las funciones más útiles de Cron, ejecutar un comando o un script al iniciarse el sistema. Para ello usamos la sintaxis especial @reboot
.
@reboot /ruta/al/comando
Ejemplos prácticos
Aquí hay algunos ejemplos prácticos de tareas programadas que puedes configurar en tu Raspberry Pi:
Ejecutar un Script de respaldo semanalmente
Para ejecutar un script llamado backup.sh
cada domingo a las 3 AM:
0 3 * * 0 /home/pi/scripts/backup.sh
Sincronizar la hora de sistema cada hora
Para sincronizar la hora del sistema usando ntpdate
cada hora:
0 * * * * /usr/sbin/ntpdate pool.ntp.org
Limpiar archivos temporales diario
Para ejecutar un comando que limpia archivos temporales todos los días a la medianoche:
0 0 * * * /usr/bin/find /home/pi/temp -type f -delete
Los Logs de Cron
Los logs de cron
suelen encontrarse en /var/log/syslog
en Raspberry Pi OS. Puedes revisar estos logs para verificar si las tareas programadas se ejecutan correctamente:
grep CRON /var/log/syslog
Alternativamente para depurar problemas, redirige la salida estándar y de error de tus comandos a un archivo de log:
30 2 * * * /home/pi/scripts/backup.sh >> /home/pi/logs/backup.log 2>&1