Agendamento CRON / CRONTAB

1. Apresentação
CRON ou CRONTAB, é um agendador de tarefas, utilizado para executar algo automaticamente em determinados momento/tempo.

2. Configurando
O crontab tem seu funcionamento bem simples, mas requer atenção para a sua projeção.
Para editar ele, basta executar o comando:

# crontab -e

Se for a primeira vez que está usando o comando ira solicitar o seu editor.

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]:

Escolha o da sua preferencia e tecle enter.

* * * * * comando
| | | | | |_ _ _ _ Comando a ser executado
| | | | |_ _ _ _ _ Semana (0-7 - domingo à domingo)
| | | |_ _ _ _ _ _ Mês (01-12)
| | |_ _ _ _ _ _ _ Dia (01-31)
| |_ _ _ _ _ _ _ _ Hora (00-23)
|_ _ _ _ _ _ _ _ _ Minuto (00-59)

2.1. Minuto
Varia de 00 à 59

2.2. Hora
Varia de (00 à 23)

2.3. Dia
Varia de 01 à 31
Lembrando sempre que ao executar uma tarefa nos dias acima de 28, essa tarefa não será executa no mês de fevereiro.
Usando o dia 31, você irá eliminar todos os meses que terminam em 30 ou menos.

2.4. Mês
Varia de 01 à 12
Podendo também ser usando nomes em inglês (digitados em MAIÚSCULOS ou minúsculos).
Use apenas as 3 primeiras letras do nome.

2.5. Semana
Varia de 0 à 6 ou 1 à 7
Sendo, assim: 0 à 6 de domingo à sábado ou 1 à 7 de segunda à domingo.
Podendo também ser usando nomes em inglês (digitados em MAIÚSCULOS ou minúsculos).
Use apenas as 3 primeiras letras do nome.

2.6. Comando
O comando é você que define, é importante lembrar que o "%" (porcento) é usado para quebra de linha, então, caos você queira usá-lo, digite: "\%", usando a "\" barra invertida antes.

3. Caracteres especiais
Você pode também trabalhar com "coringas", veja abaixo alguns exemplos.

3.1. Usando "*"
Executar uma tarefa ("echo teste") sendo que por 10 minutos, usando o "*", seja:

10 * * * * echo teste

3.2. Usando "/"
Executar uma tarefa de 5 em 5 minutos, usando o "/", seja:

*/5 * * * * echo teste

3.3. Usando "/"
Executar uma tarefa de 5 em 5 minutos durante os 30 primeiros minutos, usando o "/", seja:

0-30/5 * * * * echo teste

3.4. Usando "-"
Executar uma tarefa no período de 0 à 5 minutos, usando o "-", seja:

0-5 * * * * echo teste


3.5. Usando ","

Executar uma tarefa no minuto 1, 3 e 5, usando a "," (vírgula), seja:

1,3,5 * * * * echo teste

4. Exemplo
Executando uma tarefa dia 15/03, quando for segunda-feira, no horário das 23h e 54min.

54 23 15 03 01 echo "Exemplo de tarefa"
| | | | | | _ _ _ _ Comando a ser executado
| | | | |_ _ _ _ _ _ Semana
| | | | _ _ _ _ _ _ _ Mês
| | |_ _ _ _ _ _ _ _ _ Dia
| | _ _ _ _ _ _ _ _ _ _ Hora
|_ _ _ _ _ _ _ _ _ _ _ _ Minuto

Sempre que fizer uma alteração reinicie o cron

Debian 7/8/9

/etc/init.d/cront restart

Debian 10

systemctl restart cron

Site para você não errar: https://crontab.guru/

Valeu!

Creditos: www.emota.com.br/linux/crontab.html

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

4 Resultados

  1. Marco Túlio Lacerda disse:

    na minha pasta raiz do servidor esta gravando o nome das paginas em arquivos em cada cron que executa e tambem enviando emails o que pode fazer pra nao retornar isso??

  1. 24 de outubro de 2018

    […] é colocar ele no seu CRON para executar a cada 15 […]

  2. 24 de setembro de 2023

    […] Ideal é colocar o comanod certbot -q renew no seu CRON para executar a cada 15 […]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *