Linux
Cron en Linux: cómo programar tareas automáticas paso a paso

Cron es el programador de tareas de Linux: un servicio que lleva décadas ejecutando comandos a la hora exacta que le pidas. Su sintaxis de cinco columnas asusta el primer día y se domina el segundo. Vamos a ello.
Editar tu crontab
crontab -e # editar las tareas de tu usuario
crontab -l # listarlas
sudo crontab -e # las de rootLa primera vez te preguntará qué editor usar: elige nano si no vives en vim.
La sintaxis: cinco columnas y un comando
# ┌ minuto (0-59)
# │ ┌ hora (0-23)
# │ │ ┌ día del mes (1-31)
# │ │ │ ┌ mes (1-12)
# │ │ │ │ ┌ día de la semana (0-7, 0 y 7 = domingo)
# │ │ │ │ │
# * * * * * comandoEjemplos listos para copiar
0 7 * * * /home/usuario/backup.sh # cada día a las 7:00
*/15 * * * * /home/usuario/comprobar.sh # cada 15 minutos
0 3 * * 0 /home/usuario/limpieza.sh # domingos a las 3:00
0 9 1 * * /home/usuario/informe-mensual.sh # el día 1 de cada mes
@reboot /home/usuario/al-arrancar.sh # al iniciar el sistemaLos tres errores que comete todo el mundo
- Rutas relativas. Cron no conoce tu PATH ni tu carpeta actual: usa rutas absolutas para comandos y archivos (
/usr/bin/python3 /home/usuario/script.py, nopython3 script.py). - Sin permisos de ejecución. El script necesita
chmod +x. - El % sin escapar. En crontab, el símbolo % tiene significado especial: escríbelo como
\%(típico en comandos condate +\%F).
Guardar la salida para saber qué pasó
0 7 * * * /home/usuario/backup.sh >> /var/log/backup.log 2>&1Ese 2>&1 envía también los errores al log. Sin esto, cuando una tarea falle de madrugada no tendrás ni idea de por qué.
Comprobar que cron hizo su trabajo
# Ubuntu/Debian
grep CRON /var/log/syslog | tail -20
# Distros con systemd
journalctl -u cron --since todayConclusión
Cron es simple, fiable y está en todos los Linux del planeta. Rutas absolutas, salida a un log y la chuleta de las cinco columnas a mano: con eso tienes automatización de nivel profesional con una sola línea de texto.