Eventos Agendados - Desvendando o Cron!


#1

Introdução:

O Agendador de eventos possui o CRON para agendar os eventos. Contudo existe uma pequena diferença para o CRON que o Linux utiliza. Para quem não entende de CRON, ou para quem sabe usar o CRON e perdeu a cabeça com ele aqui no ScadaBR, vai a solução:

Conhecendo o CRON

O Cron é o agendador de tarefas usado no Linux a anos. É poderoso, contudo é muito confuso a primeira vista. Contudo, uma vez compreendido o mecanismo, fica fácil de usar.

Formato da Expressão CRON

A expressão do cron é formado por seis ou sete campos, separados por espaços em branco. Os campos podem conter qualquer um dos valores permitidos, combinações de caracteres especiais em cada campo. Vejamos abaixo o nome dos campos, tipo e caracteres permitidos:

Campo Mandatorio Valores Permitidos Caracteres Especiais Permitidos
Segundos SIM 0-59 , - * /
Minutos SIM 0-59 , - * /
Horas SIM 0-23 , - * /
Dia do Mês SIM 1-31 , - * ? / L W
Mês SIM 1-12 or JAN-DEC , - * /
Dia da Semana SIM 1-7 or SUN-SAT , - * ? / L #
ANO NÃO Vazio, 1970-2099 , - * /

Por exemplo:

* * * * ? *

a expressão acima diz: execute a cada segundo.

Os caracteres especiais:

vamos a lista:

Caractere Significado Explicação
* Todos os Valores Seleciona todos os valores do Campo, exemplo em Segundos * indica: A cada segundo
- Periodo Usado para indicar periodos, exemplo: para horas: 8-10, 8,9,10 da manha,
, Adicionar Valor Usado para adicionar valores ao campo, exemplo: para horas: 7,11,13,18, ou seja 7 da manhã, 11 da manhã, 13 horas e 18 horas.
? Sem Valor especifico Pode ser usado para combinar dois campos: Tipo: dia 10 do Mês mas nao importa o dia da semana, coloco 10 no mes, mas ? no dia da semana, Vai ocorrer todo dia 10, nao importando o dia da semana,
# XXX dia do Mês em Dias da Semana, 4#2 . Segunda Quarta-feira do Mês, 4 indica Quarta e 2 o segundo dia.
/ Incrementos É usado para incrementos: exemplo: 0/10, em minutos significa no minuto 00, depois Minuto 10, depois Minuto 20, Minuto 30, minuto 40, minuto 50.
/ Ultimo (Last) Tem significado distindo dependendo do campo: Em dia do mês, exemplo L indica o último dia do mês, 31 de Janeiro, 28 de Fevereiro (ou 29 de Fevereiro em ano Bissexto)... Usado no dia da semana, como: 6L, indica, Última Sexta-feira do mês,
W Segunda a Sexta Usado no dia da semana, W20 indica Dia da Semana mais proximo do dia 20, ou seja: se dia 20 for um sábado, o Evento ocorrerá no dia 19 (sexta). Contudo: se colocar 1W, e dia Primeiro for um sábado, o evento vai ocorrer no dia 3 que é Segunda-feira. Voce pode combinar LW. Essa combinação no dia do mês indica Último dia de Semana do mês. **O W só pode ser usado em dias do mês.**

Vejamos os exemplos abaixo:

**Expressão** **Significado**
0 0 12 * * ? Evento a Meia-Noite todo dia
0 15 10 ? * * Evento ãs 10:15 da manha todo dia
0 15 10 * * ? Evento ãs 10:15 da manha todo dia
0 15 10 * * ? * Evento ãs 10:15 da manha todo dia
0 15 10 * * ? 2025 Evento ãs 10:15 da todo dia no ano de 2025
0 * 14 * * ? Evento a cada minuto a partir das 14 horas e Termina as 14:49, todo dia
0 0/5 14 * * ? Evento a cada 5 minutos iniciando as 14 horas e termina as 14:55, todo os dias
0 0/5 14,18 * * ? Evento a cada 5 minutes iniciando as 14horas e termina em 14:59, e também a cada 5 minutos entre 18 e 18:55, todo dia
0 0-5 14 * * ? Evento a cada Minuto a partir de 14 horas e termina as 14:05, todo dia
0 10,44 14 ? 3 WED Evento as 14:10 e 14:44 toda quarta-feira do mês de Março.
0 15 10 ? * MON-FRI Evento as 10:15 da manha toda Segunda-Terça/Quarta/Quinta e Sexta-feira
0 15 10 15 * ? Evento ãs 10:15 do dia 15 de cada mês
0 15 10 L * ? Evento as 15:10 do Último dia do mês
0 15 10 L-2 * ? Evento ãs 10:15 da manhã dos últimos dois dias de cada mês
0 15 10 ? * 6L Evento ãs 10:15 da manhã, na última sexta-feira de cada mês
0 15 10 ? * 6L 2022-2025 10:15 da manhã na última sexta-feira de cada mês nos anos de 2022,2023,2024 e 2025
0 15 10 ? * 6#3 Evento 10:15 da Terceira Sexta-feira de cada mês
0 0 12 1/5 * ? Evento ao meio dia a cada 5 dias começando no dia primeiro.
0 11 11 11 21 ? Evento no dia 11 de Novembro as 11:11 da manhã.

Como pode ver, usando o Cron, é possível personalizar diversos tipos de eventos.

Aviso: no campo CRON do Agendador de Eventos, o limite é de 25 caracteres para o ScadaBR 0.8 até 1.0 e 1.1, No Scada-E-F pode chegar até 80. No ScadaLTS não se sabe até o momento qual o limite. Um Erro de SQL ao tentar salvar o agendamento, ocorre se ultrapassar estes limites.


Seleção dias da Semana - Arduino/Scadabr
#2

Essa é uma postagem digna de parabens.
Nos enriquece no conhecimento da ferramenta.