Como usar o comando 'at' para agendar uma tarefa em um horário determinado ou posterior no Linux
Como alternativa ao agendador de tarefas cron, o comando at
permite agendar um comando para ser executado uma vez em um determinado momento, sem editar um arquivo de configuração.
O único requisito consiste em instalar este utilitário e iniciar e habilitar sua execução:
yum install at [on CentOS based systems]
sudo apt-get install at [on Debian and derivatives]
Em seguida, inicie e habilite o serviço at no momento da inicialização.
--------- On SystemD ---------
systemctl start atd
systemctl enable atd
--------- On SysVinit ---------
service atd start
chkconfig --level 35 atd on
Quando atd
estiver em execução, você poderá agendar qualquer comando ou tarefa da seguinte maneira. Queremos enviar 4 sondagens de ping para www.google.com
quando o próximo minuto começar (ou seja, se for 22:20:13, o será executado às 22:21:00) e reportará o resultado por e-mail (-m
, requer Postfix ou equivalente) ao usuário que invoca o comando:
echo "ping -c 4 www.google.com" | at -m now + 1 minute
Se você optar por não usar a opção -m
, o comando será executado, mas nada será impresso na saída padrão. Você pode, no entanto, optar por redirecionar a saída para um arquivo.
Além disso, observe que at
não só permite os seguintes horários fixos: agora, meio-dia (12h00) e meia-noite (00h00), mas também dois dígitos personalizados (representando horas) e Horas de 4 dígitos (horas e minutos).
Por exemplo,
Para executar updatedb
às 23h de hoje (ou amanhã se a data atual for posterior às 23h), faça:
echo "updatedb" | at -m 23
Para desligar o sistema às 23:55 de hoje (aplicam-se os mesmos critérios do exemplo anterior):
echo "shutdown -h now" | at -m 23:55
Você também pode atrasar a execução em minutos, horas, dias, semanas, meses ou anos usando o sinal +
e a especificação de tempo desejada como no primeiro exemplo.
As especificações de tempo estão sujeitas ao padrão POSIX.
Resumo
Como regra geral, use at em vez do agendador de cron job sempre que desejar executar um comando ou executar uma determinada tarefa em um horário bem definido apenas uma vez. Para outros cenários, use cron.
A seguir, abordaremos como criptografar arquivos tar usando openssl, até então permanecer conectado ao Tecmint.