Expressão cron: na primeira segunda-feira do mês

0 9 1-7 * * roda na primeira segunda-feira do mês. Veja o que cada campo significa, quando roda em seguida e como usar no crontab, GitHub Actions, Kubernetes e Node.js.

Atualizado em

0 9 1-7 * *
Expressão cron
Na primeira segunda-feira do mês
Agendamento

Abrir no Gerador de Expressão Cron →

O que 0 9 1-7 * * significa

O cron lê cinco campos da esquerda para a direita: minuto, hora, dia do mês, mês e dia da semana. Para na primeira segunda-feira do mês, os campos são:

CampoValorSignificadoPermitido
Minuto000–59
Hora909:000–23
Dia do mês1-7de 1 a 71–31
Mês*todo mês1–12
Dia da semana*todo dia da semana0–6 (dom–sáb)

Próximas execuções

Calculado no seu navegador para seu fuso horário. Em um servidor, o cron usa o fuso horário do servidor (geralmente UTC).

  1. Ative o JavaScript para ver os próximos horários de execução.

Usos comuns

  • Reuniões mensais da equipe
  • Relatórios mensais em um dia útil

Bom saber

O cron padrão não consegue expressar “primeira segunda-feira” sozinho. Execute às 9:00 nos dias 1 a 7 e deixe o comando continuar apenas se for segunda-feira: 0 9 1-7 * * [ "$(date +\%u)" = 1 ] && /job.sh. Não escreva 0 9 1-7 * 1: quando os dois campos de dia estão preenchidos, o cron clássico executa se qualquer um deles corresponder, então também rodaria todas as segundas-feiras.

Use no crontab, GitHub Actions, Kubernetes e Node.js

crontab (crontab -e):

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

GitHub Actions (os horários são em UTC):

on:
  schedule:
    - cron: '0 9 1-7 * *'

Kubernetes CronJob:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "0 9 1-7 * *"
  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 9 1-7 * *', () => {
  // your job
});

Agendamentos relacionados

Perguntas frequentes

Qual é a expressão cron para na primeira segunda-feira do mês?
0 9 1-7 * *. Roda no minuto 0; às 09:00; nos dias 1 a 7.
Qual fuso horário o cron usa?
O cron clássico usa o fuso horário local do servidor, e muitos servidores rodam em UTC. O GitHub Actions sempre usa UTC. Os CronJobs do Kubernetes usam o fuso horário do controlador, a menos que você defina spec.timeZone (por exemplo Europe/Berlin).
Como testo uma expressão cron?
Cole-a no Gerador de Expressão Cron para vê-la em linguagem simples com as próximas execuções e depois confira o log do seu job após a primeira execução agendada.