As tarefas enviadas para o daemon at
enviarão qualquer saída para você de stderr e stdout após a conclusão. Também pode ser configurado para enviar e-mail, mesmo que o trabalho não tenha saída. Ele também tem o benefício de rodar sem um terminal de controle, então você não precisa se preocupar com o efeito que o fechamento do seu terminal terá no trabalho.
exemplo:
echo "/opt/product/bin/job.sh data123"|at -m NOW
Quando esse trabalho for concluído, o usuário que enviou o trabalho receberá um email e, se houver algum resultado, você o receberá. Você pode alterar o destinatário do email alterando a variável de ambiente LOGNAME
.
at
tem um modo em lotes no qual você pode colocar trabalhos em fila para serem executados quando o sistema não está ocupado. Esse não é um sistema de filas muito bom quando vários usuários estão competindo por recursos, mas, mesmo assim, se você quiser executar trabalhos com ele:
echo "/opt/product/bin/job.sh dataA"|batch
echo "/opt/product/bin/job.sh dataB"|batch
echo "/opt/product/bin/job.sh dataC"|batch
Por padrão, os trabalhos não serão iniciados a menos que a carga do sistema esteja abaixo de 1,5, mas esse valor de carga pode ser ajustado (e com 24 núcleos eu diria que você deveria). Eles podem rodar em paralelo se eles não fizerem o loadavg ultrapassar o limite de carga (1.5 padrão novamente), ou se eles individualmente aumentarem o loadavg acima de 1.5, eles rodarão em serial.
Você pode ver a fila de trabalhos com atq
e excluir trabalhos com atrm
Depender de dependências:
- Executando
atd
daemon (ps -ef|grep atd
) - Você tem permissão para enviar trabalhos para
atd
(não negado por/etc/at.deny
//etc/at.allow
configurações) - Funcional
sendmail
MTA
A maioria dos sistemas não tem problemas com esses requisitos, mas vale a pena verificar.