~/docs /Cron CHEATSHEET
Cron CHEATSHEET
Cron CHEATSHEET
Imported from Notion: Cron CHEATSHEET
updated:: 2026.07.10
Que resuelve
Referencia rapida para programar tareas con cron, revisar logs y evitar errores de entorno.
Sintaxis
* * * * * comando
| | | | |
| | | | +-- dia de la semana (0-7, domingo 0 o 7)
| | | +---- mes (1-12)
| | +------ dia del mes (1-31)
| +-------- hora (0-23)
+---------- minuto (0-59)
Editar cron
Cron del usuario actual
crontab -e
Listar tareas
crontab -l
Cron de otro usuario
sudo crontab -u {USER} -e
Ejemplos de tiempo
| Expresion | Significado |
|---|---|
* * * * * | Cada minuto |
*/5 * * * * | Cada 5 minutos |
0 * * * * | Cada hora |
0 2 * * * | Todos los dias a las 02:00 |
30 3 * * 1 | Lunes a las 03:30 |
0 0 1 * * | Dia 1 de cada mes |
Ejemplos seguros
Ejecutar script cada 5 minutos
*/5 * * * * /usr/local/bin/{SCRIPT}.sh
Guardar stdout y stderr
*/15 * * * * /usr/local/bin/{SCRIPT}.sh >> /var/log/{SCRIPT}.log 2>&1
Ejecutar con shell explicito
0 2 * * * /bin/bash /opt/{APP}/backup.sh >> /var/log/{APP}-backup.log 2>&1
Variables de entorno
Cron no carga tu entorno interactivo completo.
Definir PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Definir SHELL
SHELL=/bin/bash
Definir MAILTO vacio
MAILTO=""
Directorios de sistema
| Ruta | Uso |
|---|---|
/etc/crontab | Cron global con columna de usuario |
/etc/cron.d/ | Tareas globales separadas por archivo |
/etc/cron.daily/ | Tareas diarias |
/etc/cron.hourly/ | Tareas horarias |
Logs y diagnostico
Debian/Ubuntu
grep CRON /var/log/syslog
systemd journal
journalctl -u cron
Ver ultimas ejecuciones
grep CRON /var/log/syslog | tail
Probar comando manualmente
/bin/bash -lc '/usr/local/bin/{SCRIPT}.sh'
Buenas practicas
-
Usa rutas absolutas.
-
Redirige salida a log.
-
Define
PATH. -
Evita comandos largos dentro del crontab.
-
Mete la logica en scripts versionados.
Variables
| Variable | Descripcion |
|---|---|
{USER} | Usuario propietario del cron |
{SCRIPT} | Script ejecutado |
{APP} | Nombre de app o servicio |
Errores comunes
| Sintoma | Causa probable | Solucion |
|---|---|---|
| Funciona manual, falla en cron | PATH distinto | Usa rutas absolutas y define PATH |
| No hay salida | Sin redireccion ni correo | Anade >> log 2>&1 |
| Permiso denegado | Script no ejecutable | chmod +x o llama con /bin/bash |
| Hora inesperada | Timezone distinta | Revisa timedatectl |
Checklist final
-
Comando probado manualmente.
-
Rutas absolutas.
-
Logs configurados.
-
Usuario correcto.
-
Permisos del script revisados.
- EOF -