CRON: Como agendar suas tarefas e aumentar a sua produtividade no Linux

Tempo de leitura: 4 min

Escrito por Fernando Silva

JUNTE-SE Á NOSSA LISTA DE SUBSCRITORES

Entre para nossa lista e receba conteúdos exclusivos e com prioridade

100% livre de spam.

Compartilhe agora mesmo:

Um dos desafios de ser programador é ter que executar tarefas à noite, nos finais de semana, ou em horários em que a maioria das pessoas não trabalha. Mas o que muitos não sabem é que existe uma alternativa. 

Você pode utilizar um utilitário de serviço que permite executar comandos, programas e tarefas em horários predeterminados. 

O CRON permite que os administradores de sistema agendem tarefas para serem executadas em um horário específico no futuro.

O serviço CRON pode agendar tarefas repetidamente, como diariamente, semanalmente ou mensalmente. Neste artigo, apresentarei o CRON e como usá-lo.

Usando o crontab

O utilitário cron é executado com base nos comandos especificados em uma tabela cron ( crontab ). Cada usuário, incluindo o root, pode ter um arquivo cron. 

Esses arquivos não existem por padrão, mas podem ser criados no diretório / var / spool / cron usando o comando crontab -e, que também é usado para editar um arquivo cron (veja o script abaixo). 

Novos arquivos cron estão vazios, portanto, os comandos devem ser adicionados a partir do zero. 

Observe o exemplo de definição de tarefa abaixo aos meus próprios arquivos CRON, apenas como uma referência rápida, para que eu saiba o que significam as várias partes de um comando:


# Defina o relógio do hardware para mantê-lo sincronizado com o relógio do sistema mais preciso
03 05 * * * / sbin / hwclock –systohc

# Executa atualizações mensais no primeiro dia do mês
# 25 04 1 * * / usr / bin / dnf -y update

O comando crontab é usado para visualizar ou editar os arquivos cron.

As três primeiras linhas no código acima configuram um ambiente padrão. O ambiente deve ser definido como o necessário para um determinado usuário, porque o cron não fornece um ambiente de qualquer tipo. 

A função SHELL especifica o shell a ser usado quando os comandos são executados. Este exemplo especifica o shell Bash. 

A função MAILTO define o endereço de email para o qual os resultados do trabalho cron serão enviados. Esses emails podem fornecer o status do trabalho cron (backups, atualizações etc.) e consistir na saída que você veria se executasse o programa manualmente a partir da linha de comando. 

Os asteriscos (*) nas posições três, quatro e cinco da especificação do tempo são como globs de arquivo, ou curingas, para outras divisões de tempo; eles especificam “todos os dias do mês”, “todos os meses” e “todos os dias da semana”. Essa linha executa meus backups duas vezes; um faz backup em um disco rígido interno dedicado e o outro em um drive USB externo que eu posso levar para o cofre.

A linha a seguir define o relógio do hardware no computador usando o relógio do sistema como fonte de uma hora precisa. Essa linha está configurada para ser executada às 5:03 (03 05) todos os dias.

03 05 * * * /sbin/hwclock –systohc

Outros truques de agendamento

Agora vamos fazer algumas coisas que são um pouco mais interessantes do que essas noções básicas. Suponhamos que você queira executar um trabalho específico toda quinta-feira às 15:00:

00 15 * * Thu /usr/local/bin/mycronjob.sh

O serviço CRON não tem opção para “O último dia do mês”, portanto, você pode usar o primeiro dia do mês seguinte, conforme mostrado abaixo. (Isso pressupõe que os dados necessários para os relatórios estarão prontos quando o trabalho estiver definido para ser executado.)

02 03 1 1,4,7,10 * /usr/local/bin/reports.sh

A seguir, é mostrado um trabalho que passa um minuto a cada hora entre 9h01 e 17h01.

01 09-17 * * * /usr/local/bin/hourlyreminder.sh

Em situações em que é preciso executar um trabalho a cada duas, três ou quatro horas. Isso pode ser conseguido dividindo as horas pelo intervalo desejado, como * / 3 a cada três horas ou 6-18 / 3 a cada três horas entre as 6h e as 18h.

Outros intervalos podem ser divididos da mesma forma; por exemplo, a expressão * / 15 na posição de minutos significa “executar o trabalho a cada 15 minutos”.

*/5 08-18/2 * * * /usr/local/bin/mycronjob.sh

Uma coisa a observar: As expressões de divisão devem resultar em um restante de zero para que o trabalho seja executado. 

É por isso que, neste exemplo, a tarefa é configurada para ser executada a cada cinco minutos (08:05, 08:10, 08:15, etc.) durante o horário par das 8h às 18h, mas não durante períodos ímpares. horas numeradas. Por exemplo, o trabalho não será executado das 21h às 21h59.

Material complementar

crontab-linux

Comandos Básicos do Linux para você imprimir.

100% livre de spam.

Você vai gostar também:

Para enviar seu comentário, preencha os campos abaixo:

Deixe um comentário


*


*


Seja o primeiro a comentar!

JUNTE-SE Á NOSSA LISTA DE SUBSCRITORES

Entre para nossa lista e receba conteúdos exclusivos e com prioridade

100% livre de spam.