crontab -e, diferencias de entorno y crontab del sistema vs. del usuario
Las tareas se editan normalmente con crontab -e. Este comando abre el crontab propio del usuario actual y, al guardar, comprueba la sintaxis antes de aplicarla. Para ver la lista se usa crontab -l y para borrarlo todo crontab -r, pero hay que tener cuidado porque -r borra sin pedir confirmación.
El entorno en el que cron ejecuta las tareas es distinto del shell con el que iniciaste sesión. Cron ofrece solo un entorno mínimo y su PATH suele ser corto, como /usr/bin:/bin. Por eso, un comando que funcionaba en el shell de inicio de sesión a menudo falla en cron con 'comando no encontrado'. Lo más seguro es escribir los comandos con ruta absoluta.
Puedes declarar variables de entorno al principio del archivo crontab. Las más habituales son PATH=/usr/local/bin:/usr/bin:/bin, SHELL=/bin/bash, MAILTO="you@example.com" y CRON_TZ=Asia/Seoul, que fija la zona horaria. Si el valor contiene espacios, enciérralo entre comillas.
El crontab del usuario y el crontab del sistema tienen formatos distintos. El crontab de usuario creado con crontab -e usa los 5 campos estándar (minuto hora día mes día de la semana). En cambio, las entradas del sistema en /etc/crontab y /etc/cron.d/* tienen 6 campos (minuto hora día mes día de la semana user comando), con un campo de usuario de ejecución añadido después del día de la semana. Como esta herramienta interpreta los 5 campos estándar, cuando revises un crontab del sistema, quita el campo de usuario e introduce solo los 5 primeros campos.
Si en lugar de una hora precisa te basta con algo como 'cada día' o 'cada hora', también puedes colocar el script en un directorio drop-in como /etc/cron.daily o /etc/cron.hourly. Se ejecuta a un intervalo predefinido sin necesidad de una expresión. Si dejas para el crontab solo los casos en que necesitas un minuto u hora concretos, con una expresión creada con esta herramienta, la gestión queda más limpia.