La sintaxis de cron es de esas cosas que tardan diez minutos en aprenderse y diez años en mantenerse en memoria. Cinco campos, rangos, pasos, listas, la diferencia entre */5 y 0,5,10,15,...,55 — y el ciclo de prueba escribir entrada, esperar una hora, ver si corrió es famoso por ser lento. Preguntar por intención es más rápido.
Cinco horarios reales
Cada 5 minutos en horario laboral
$ clai línea cron: cada 5 minutos de 9 a 17 en días laborables→ */5 9-17 * * 1-5
Primer día del mes
$ clai línea cron: 02:30 el primer día de cada mes→ 30 2 1 * *
Cada lunes a las 3 AM
$ clai línea cron: cada lunes a las 03:00→ 0 3 * * 1
Cada 15 minutos, salteando 23:00–06:00
$ clai línea cron: cada 15 minutos entre 06:00 y 22:59→ */15 6-22 * * *
Cada hora, solo días laborables
$ clai línea cron: en punto cada hora, de lunes a viernes→ 0 * * * 1-5
Verificar lo que tienes
Antes de meter el horario en crontab -e, lista lo que ya hay:
$ clai muéstrame mi crontab actual→ crontab -l
Una pequeña advertencia
Los horarios cron se interpretan en la zona del demonio cron, normalmente la zona del sistema. Si tu "cada lunes a las 3 AM" debe ser 3 AM hora de Londres en un servidor UTC, hazlo explícito en el prompt — "cada lunes a las 3 AM hora de Londres, expresado en UTC" — y obtendrás 0 3 * * 1 ajustado, o la entrada pondrá CRON_TZ=Europe/London si tu demonio lo soporta.
Ver también
- Limpiar logs y backups viejos — el lugar natural donde vive una entrada cron "semanal".
- Del one-liner al script — cuando un job cron se gana su propio script en el repo.