sábado, 9 de maio de 2020

Agendamento Tarefas no Linux com Crontab

É comum precisarmos que o computador realize tarefas periódicas ou mesmo que ele rode determinado script após a inicialização do sistema operacional.

Este tópico apresenta uma das formas de realizar esse tipo de tarefa, utilizando o Cron.

O Crontab é um software do linux que permite a execução em horário e dias específicos e descarta, por exemplo, a necessidade de edição do arquivo rc.local para criação de tarefas de inicialização no sistema.

Como duas ferramentas principais de seu uso, temos a ferramenta de visualização das tarefas já agendadas e a segunda ferramenta de edição.

Para visualizar as tarefas agendadas, execute o comando:

crontab -l



No exemplo acima, podemos ver duas tarefas agendadas, a primeira será executada todo dia às 9:30 da manhã e fará a execução de um script de python.

A segunda, executa diariamente a mesma tarefa, às 13:25.

Para agendar a tarefa para ser realizada na inicialização do sistema, por exemplo você poderia criar a tarefa:
@restart python3 /caminho/script.py

A sintaxe do crontab, segue a seguinte ideia:
m h diadomes mes diadasemana
Para o dia do mes, mes e dia da semana, se você colocar o flag *, o mesmo será executado todos os dias.
Abaixo listo alguns exemplos:
30 0 1 * * python3 /caminho/script.py => Executa o script sempre no dia 01 do mês, às 0:30.
30 0 1 4 * python3 /caminho/script.py => Executa o script sempre no dia 01 do mês de abril, às 0:30.
0 12 * * 1 python3/caminho/script.py => Executa o script sempre às segundas feiras.

Conhecendo a sintaxe é hora então de criar sua tarefa. Para criar um novo agendamento, portanto, você deve executar o comando:

crontab -e

Por padrão ele abrirá o editor nano. Tudo o que precisa fazer é adicionar a linha desejada ao fim do arquivo. Você verá na barra inferior, alguns atalhos do nano. Lembre-se que a marcação ^ significa control no Linux.
Portanto, para salvar o arquivo pressione Ctrl + O.
Para sair do editor do crontab pressione Ctrl + X.

Boa sorte! Qualquer dúvida, mande mensagem.

Nenhum comentário:

Postar um comentário