Como agendar tarefas no Linux para quando a máquina ficar ociosa.

Se você quiser rodar programas ou agendar atividades para horários opostos aos de pico do sistema, ou seja, quando estiver (razoavelmente) ocioso, o comando batch é a solução.
Tarefas agendadas através deste utilitários serão executadas automaticamente quando a média da carga de trabalho do sistema estiver abaixo de 0.8 — no meu sistema (Debian 9.0 Stretch o valor padrão é 1.5.
É possível ajustar este número no atd ou no atrun, se ele não for satisfatório.
Use man, combinado com o comando grep, para saber qual o valor no seu sistema:


man batch | grep -i average

               other  words,  when the load average drops below 1.5,
       processing rules with respect to load average apply.  If  atq

O batch faz parte do pacote do comando at — clique para obter mais detalhes.
Você pode restringir acesso ao at e ao batch, inscrevendo os nomes de usuários no arquivo /etc/at.deny.
Para alterar o valor referente à carga média de trabalho do sistema, abaixo do qual o batch já pode começar a executar as tarefas listadas, use o comando atd:

atd -l x

Substitua x pelo valor desejado.
Este comando necessita de privilégios administrativos.
Ao rodar o comando batch, ele entrará no modo prompt, pedindo para que você forneça tarefas a serem executadas, uma por linha.
Ao terminar de listar os comandos, tecle ‘Ctrl + D’ (^D).


batch

warning: commands will be executed using /bin/sh
at> espeak -v pt "Estou ocioso, no momento, patrão!"
at> espeak -v pt "Me dê algo para fazer."
at> ^D 
job 20 at Thu Sep 14 15:22:00 2017

Esta é a maneira de rodar o comando. Ele não aceita parâmetros, como o comando at.

Referências

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/System_Administration_Guide/s1-autotasks-at-batch.html.

http://www.tutorialspoint.com/unix_commands/batch.htm

https://kb.iu.edu/d/aewo.

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia. Fã de séries, como "Rick and Morty" e "BoJack Horseman". Me siga no Twitter e vamos trocar ideias!

Deixe uma resposta

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