segunda-feira, 16 de abril de 2012

Agendamento de comandos com at


Se você precisar executar um comando em uma máquina Linux em um horário específico apenas uma vêz e não vai poder se conectar ao equipamento no momento, há duas opçõies:

1- Criar um job na cron, deixá-lo executar, e depois retirá-lo. (nada elegante)
2- Usar o at

Para usar o at, crie um script contendo os comandos que você quer executar. Por exemplo, "a.sh". Vamos executá-lo as 11:00. Para isso, digite:

$ at 11:00 -f a.sh 
warning: commands will be executed using /bin/sh
job 2 at Mon Apr 16 11:00:00 2012

Para listar os jobs agendados, execute:

$ at -l
2 Mon Apr 16 11:00:00 2012 a ricardo

O job é retirado da lista imediatamente após a execução.

$ date
Seg Abr 16 10:57:40 BRT 2012

$ at -l
2 Mon Apr 16 11:00:00 2012 a ricardo


$ date
Seg Abr 16 11:00:19 BRT 2012


$ at -l

Para remover um job você vai precisar do número dele (primeira coluna do comando at -l)

$ at -d 2