Quero agendar trabalhos com at
, mas não tenho certeza do que acontecerá se o computador for suspenso no horário especificado: o comando será executado assim que o computador acordar novamente (como com anacron
) ou não será executado (como com cron
)?
Se você especificar uma tarefa para ser executada em uma hora e data específicas no passado, a tarefa será executada o mais rápido possível.
É o que a página de manual diz sobre isso, porém não condiz muito com o meu caso: não quero especificar um job para rodar no passado, quero rodar no futuro e perguntar como at
vou tratar se o computador está dormindo então.
Esta não é uma duplicata de Executar no comando quando o computador está inativo porque esta pergunta pergunta se at
o computador será ativado para executar o comando, nem é uma duplicata de Como impedir que o atd execute trabalhos anteriores? porque se trata de como evitar at
a execução desses trabalhos “antigos” (com uma resposta muito boa!).
at
executa qualquer comando que deveria ter sido executado antes quando você ativa o computador, mas pode levar alguns minutos para fazer isso. Nem importa se você deu uma data específica , pois você pode testar facilmente:Portanto, um trabalho que você adiciona usando
at 20:00 today
pode muito bem ser executado repentinamente três dias depois, quando você liga o computador novamente. Se você quiser evitar isso, pode verificar o tempo no próprio trabalho, conforme proposto aqui: Como evitar que o atd execute trabalhos anteriores?