crontab

Como agendar uma tarefa no Linux?

Como agendar uma tarefa no Linux?
Sempre que usar um sistema operacional baseado em UNIX, certas tarefas devem ser realizadas repetidamente. Executá-los manualmente todas as vezes é demorado e ineficiente em geral. Para resolver esse problema, o UNIX vem com seus agendadores de tarefas integrados. Esses agendadores de tarefas agem como um despertador inteligente. Quando o alarme dispara, o sistema operacional irá executar a tarefa predefinida.

No caso do Linux, ele vem com duas ferramentas básicas, mas poderosas: Cron daemon (agendador de tarefas padrão) e at (mais adequado para agendamento de tarefas único).

Neste guia, verifique como agendar uma tarefa no Linux.

Agende tarefas no Linux

Cron
O cron daemon é responsável por executar muitos trabalhos em horários específicos. Essas tarefas geralmente são executadas em segundo plano em horários programados. Oferece grande flexibilidade independentemente da tarefa, independentemente do intervalo (hora, semana, mês, ano ou qualquer outro).

O Cron acompanha suas ações usando o arquivo crontab. O arquivo crontab é um script que contém todas as informações necessárias para executar todos os trabalhos do cron.

Vamos dar uma olhada rápida em alguns dos usos básicos do cron. No caso de qualquer um dos seguintes comandos, ele será configurado para o usuário root se for executado com privilégio sudo. Para a demonstração, peguei um arquivo crontab de amostra daqui.

Para listar todos os cron jobs agendados para o usuário atual, execute o seguinte comando. Irá imprimir todo o conteúdo do arquivo crontab.

$ crontab -l


Quer a lista de cron jobs para um usuário diferente? Em vez disso, execute este comando.

$ sudo crontab -u -l


Para editar o script crontab, execute o comando. Para editar o arquivo crontab para root, execute o seguinte comando com privilégio sudo.

$ crontab -e


Cada linha no script crontab define uma tarefa. Aqui está uma análise rápida das entradas do crontab.

$

Aqui está uma lista de todos os valores possíveis para todos esses campos. Se for usado um asterisco (*) em vez de um valor numérico, todos os valores possíveis do campo serão usados.

  • minuto: 0 a 59
  • horas: 0 a 23
  • dia do mês: 1 a 31
  • mês: 1 a 12
  • dia da semana: 0 (domingo) a 6 (sábado)

Para obter um guia aprofundado sobre como usar o crontab para automatizar tarefas, verifique como configurar tarefas cron no Linux. Aqui está outro exemplo rápido de um cron job executado a cada minuto.

no
Embora o cron seja a principal forma de agendamento de tarefas, em oferece a capacidade de executar um comando / script em um momento específico ou em um intervalo fixo, observe que em executará a tarefa de destino uma vez, enquanto o cron executará novamente a tarefa no intervalo. A ferramenta at é menos popular em comparação com o cron, mas é relativamente mais fácil de usar. Você pode usar certas palavras-chave como meia-noite ou hora do chá (4 P.M.).

Esta ferramenta não vem pré-instalada na maioria das distros Linux. Para instalar em, execute o comando apropriado de acordo com sua distro.

Para Debian / Ubuntu e derivados.

$ Sudo apt install -y em


Para CentOS / RHEL e derivados.

$ yum instalar em

Para Arch Linux e derivados.

$ sudo Pacman -S em

Para Fedora e derivados.

$ sudo dnf install em

Após a conclusão da instalação, habilite o daemon at.

$ sudo systemctl enable --now atd.serviço


A maneira de trabalhar é um pouco diferente. Sempre que ligar em, você deve definir o intervalo de execução da tarefa desejada. Por exemplo, para executar um determinado comando após uma hora, use o seguinte comando.

$ agora + 1 hora


Para executar a tarefa desejada às 6 P.M., daqui a seis dias, execute o seguinte comando.

$ às 18h + 6 dias


Quando você executa o comando, em irá solicitar os comandos a serem executados. Para sair do prompt, pressione “Ctrl + d.”Apresentará um resumo das tarefas programadas e o horário em que serão executadas.

Este é apenas um uso básico. Uma forma mais consistente de usar o at poderia ser a execução de um script bash contendo todas as tarefas que precisam ser realizadas. Interessado em aprender mais sobre scripts bash? Verificar

$ às 18h + 6 dias -ff