como-usar-crontab-en-raspberry-pi

Qué es y Cómo Usar Crontab en Raspberry Pi

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