Pesquisa de site

Escrevendo um arquivo crontab em Python usando o Módulo Plan


Primeiro, vamos entender o que é um arquivo crontab. Cron é um utilitário de software que nos ajuda a agendar tarefas em sistemas baseados em Unix. Então, basicamente, você poderá executar tarefas atribuídas periodicamente, por exemplo, backups automatizados do sistema no final do dia, desligar automaticamente ou definir o modo como DND em um horário específico e mais recursos desse tipo.

Essas “tarefas” no cron geralmente são definidas em um arquivo chamado crontab, que é basicamente um arquivo de texto que contém os comandos a serem executados.

Vamos agora aprender como podemos escrever esses arquivos crontab em Python usando o módulo plan!

Começando

Antes de entrarmos na parte de implementação, vamos primeiro entender a sintaxe do Cron. A sintaxe do Cron consiste em 5 campos diferentes separados por espaço.

Minute Hour Day Month Day_of_week
Minute (0-59), Hour (0-23), Day (1-31), Month (1-12) and Day of week (0-6). 

Você também pode usar vírgula para separar valores e incluir mais de um valor. Hífen para validar um intervalo. Asterisco para todos os valores possíveis e finalmente barra para indicar tudo.

Por exemplo, 0 15 3,6 * * diz ao cron para executar a tarefa às 15h do 3º e 6º dia de cada mês.

Instalando o Módulo de Plano Python

Tudo bem, agora que você entende como o cron funciona, vamos começar instalando o módulo necessário, planeje.

Este módulo não vem pré-empacotado com Python. Então, iremos baixá-lo e instalá-lo usando o gerenciador de pacotes pip.

Para instalar o módulo de plano, use o seguinte comando:

pip install plan

E agora podemos importá-lo para o nosso script usando o seguinte comando:

from plan import Plan

Você está pronto para começar a criar arquivos cron.

Criando crontab usando o módulo plan

Vamos começar criando uma instância para a classe que conterá um conjunto de cron

cron = Plan()

Em seguida, podemos simplesmente definir funções, scripts ou comandos que você deseja executar automaticamente.

Suponhamos que temos um script que envia automaticamente um e-mail de lembrete para tarefas pendentes a cada 5 horas. Digamos que este script esteja localizado em "/projects/scripts/automation.py".

Também queremos imprimir olá a cada 4 horas. Então, como fazemos isso?

Temos diferentes maneiras de fazer isso.

Podemos usar a função cron.command() ou a função cron.script(). Ambos os comandos ajudarão a alcançar nosso objetivo.

cron.command("echo hello", every= "4.hours")
cron.script("automation.py", path= "/projects/scripts" every= "5.hours")

Agora, vamos executar os comandos usando o comando cron.run() em nossa função principal.

If __name__ == "__main__":
	cron.run()

E é isso! Agora você automatizou as etapas e definiu um horário fixo em que os scripts definidos serão executados.

Exemplo

Aqui está o programa completo:

from plan import Plan

cron = Plan()
cron.command("echo hello", every= "4.hours")
cron.script("automation.py", path= "/projects/scripts" every= "5.hours")
If __name__ == "__main__":
	cron.run()

Conclusão

Agora você entende como automatizar a execução de scripts em horário fixo. Usando isso, você pode automatizar verificações ortográficas em seus projetos, automatizar backups do sistema em horários específicos ou até mesmo obter relatórios de cobertura do seu projeto todos os dias.

Artigos relacionados: