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.