Expresión cron: en el último día del mes

0 0 28-31 * * se ejecuta el último día del mes. Aquí tienes qué significa cada campo, cuándo se ejecuta a continuación y cómo usarlo en crontab, GitHub Actions, Kubernetes y Node.js.

Actualizado el

0 0 28-31 * *
Expresión cron
En el último día del mes
Programación

Abrir en el Generador de expresiones cron →

Qué significa 0 0 28-31 * *

Cron lee cinco campos de izquierda a derecha: minuto, hora, día del mes, mes y día de la semana. Para en el último día del mes los valores son:

CampoValorSignificadoPermitido
Minuto000–59
Hora000:000–23
Día del mes28-3128 a 311–31
Mes*todos los meses1–12
Día de la semana*todos los días de la semana0–6 (dom–sáb)

Próximas ejecuciones

Calculado en tu navegador para tu zona horaria. En un servidor, cron usa la zona horaria del servidor (normalmente UTC).

  1. Activa JavaScript para ver las próximas horas de ejecución.

Usos habituales

  • Cierre de fin de mes
  • Informes mensuales finales

Ten en cuenta

El cron estándar no tiene un valor de “último día”. Ejecuta los días 28 a 31 y deja que el comando termine si mañana no es el día 1: [ "$(date -d tomorrow +\%d)" = 01 ] && /job.sh. Quartz y algunos planificadores admiten L directamente.

Úsalo en crontab, GitHub Actions, Kubernetes y Node.js

crontab (crontab -e):

0 0 28-31 * * /usr/local/bin/my-job.sh >> /var/log/my-job.log 2>&1

GitHub Actions (las horas son UTC):

on:
  schedule:
    - cron: '0 0 28-31 * *'

Kubernetes CronJob:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "0 0 28-31 * *"
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
            - name: my-job
              image: alpine:3
              command: ["sh", "-c", "echo running"]

Node.js (node-cron):

import cron from 'node-cron';
cron.schedule('0 0 28-31 * *', () => {
  // your job
});

Programaciones relacionadas

Preguntas frecuentes

¿Cuál es la expresión cron para el último día del mes?
0 0 28-31 * *. Se ejecuta en el minuto 0; a las 00:00; los días 28 a 31.
¿Qué zona horaria usa cron?
El cron clásico usa la zona horaria local del servidor, y muchos servidores funcionan en UTC. GitHub Actions usa siempre UTC. Los CronJob de Kubernetes usan la zona horaria del controlador, a menos que definas spec.timeZone (por ejemplo Europe/Berlin).
¿Cómo pruebo una expresión cron?
Pégala en el Generador de expresiones cron para verla en lenguaje natural con las próximas ejecuciones, y luego revisa el registro de tu tarea tras la primera ejecución programada.