====== at - Agendamento de Tarefas ====== **at** é uma ferramenta de agendamento de tarefas que permite que tarefas sejam executadas no seu sistema. O **batch** é como **at**, mas executa as tarefas únicas quando a carga do sistema permite, todos os comando e funções de **at** podem ser replicados pelo **batch** com os mesmos argumentos. ===== Comandos Relacionados ===== Os seguintes comandos são incluídos para monitorar o comando **at**: * **at** - O programa usado para enviar uma tarefa única. * **atq** - O programa usado para revisar a fila de trabalhos enviados com **at** * **atrm** - O programa usado para remover trabalhos da fila **at**. ===== Uso do comando at ===== O comando **at** pode ser emitido para permitir que você escreva um script personalizado ou apontar para um script pré-construído. Além disso, as especificações de tempo permitido pode aumentar a complexidade. O argumento //-m// pode ser adicionado a qualquer comando que diga ao daemon para enviar o usuário no sistema local avisando sobre a conclusão da tarefa. ==== Agendando um Script Existente ==== Este exemplo dirá ao aplicativo **at** para executar o script ///home/user/testscript.sh// às 16h de hoje e envie um e-mail ao usuário após conclusão. user@darkstar$ at 16:00 -m -f /home/user/testscript.sh Como você pode ver, o //-f// argumento significa **arquivo**, pois aponta para o arquivo que será executado. ==== Agendando uma nova ação ==== Como visto abaixo, quando nenhum arquivo é especificado, o aplicativo **at** abre um prompt a solicitar que o usuário insira o novo script. user@darkstar$ at 19:40 -m warning: commands will be executed using /bin/sh at> ping -c 4 www.google.com at> echo $? at> job 4 at Sun Dec 30 19:40:00 2012 O usuário precisará digitar a sequência de comandos que serão emitidos dentro do prompt, após a conclusão você pode fechar o prompt com a combinação de teclas Ctrl+'d' O comando acima instruiu o **at** para pingar o google 4 vezes às 19:40, retornar o status do aplicativo e enviar os resultados por e-mail para o usuário. Certifique-se de anotar o id do job, é o único identificador visível para o job e deve ser referenciado se você deseja remover o job mais tarde. ==== Revisando Tarefas Em filas ==== O comando **atq** lista os job pendentes do usuário. A saída é o número do job, data, hora, fila e nome de usuário. user@darkstar$ atq 4 Sun Dec 30 19:40:00 2012 a user Uma vez que o número da tarefa tenha sido anotado, você pode revisar os comandos incluído no trabalho emitindo o comando //at -c {jobnumber}//, e o exemplo é mostrado abaixo. user@darkstar$ at -c 4 #!/bin/sh # atrun uid=1000 gid=1000 # mail user 1 umask 22 ....Environment Details.... cd /home/user || { echo 'Execution directory inaccessible' >&2 exit 1 } ping -c 4 www.google.com echo $? ==== Removendo Tarefas Em filas ==== O comando **atrm** remove trabalhos da fila pendente, não apresenta qualquer confirmação de que o trabalho é removido, por isso pode ser aconselhável executar **atq** após **atrm** para confirmar que o trabalho foi removido. user@darkstar$ atrm 4 ====== Mais recursos ====== * [[http://unixhelp.ed.ac.uk/CGI/man-cgi?at|at manual page]] * [[http://www.brunolinux.com/02-The_Terminal/The_at_Command.html|BrunoLinux]] * [[http://sathyaphoenix.wordpress.com/2009/01/18/using-at-command-to-schedule-jobs-in-linux/]] ====== Sources ====== * Original escrito por [[wiki:user:mfillpot | mfillpot]] * Tradução Português por [[wiki:user:macgyverpt | MacgyverPT (Miguel Rosa)]] {{tag>howtos task_scheduling author_mfillpot}} {{tag>translated_pt macgyverpt }}