Como executar um cron job apenas uma vez?

13

Eu tenho um trabalho que funciona para sempre no momento em que começa. Então, eu quero iniciá-lo apenas uma vez depois de inseri-lo no arquivo "crontab -e" e salvá-lo (ou) sempre que a reinicialização ocorrer.

Como conseguir isso?

    
por Rama Vadakattu 10.02.2010 / 18:18

4 respostas

18

Se você quiser que um comando seja executado uma vez posteriormente, use o comando at .

Se você quiser que um comando seja executado uma vez na inicialização do sistema, a solução correta é usar:

  • scripts do sistema RC (/etc/rc.local)
  • crontab com o prefixo especial @reboot (consulte a página do manual)

O último é a única opção para um usuário não-root.

    
por 10.02.2010 / 19:49
8

Você pode usar em (1) para executar um trabalho em algum momento no futuro. No entanto, se você quiser executar algo no boot e ele ficar rodando sozinho, talvez você queira uma entrada em /etc/init.d/ para ele? Isso permitiria que você iniciasse a inicialização.

    
por 10.02.2010 / 18:20
1

Um trabalho que é executado apenas uma vez e é executado para sempre até que você diga para ele morrer é chamado de "daemon". Eles normalmente são iniciados via scripts de inicialização em /etc/init.d /.

Se o seu trabalho terminar em algum momento e puder ser considerado um tipo de trabalho único, talvez seja melhor consultar o comando at. Por exemplo, se eu quisesse executar o comando find às 10 da noite e só desta vez eu faria:

$ at 10PM
at> find /root > /root/find_results.list
at> <EOT>
job 3 at 2010-02-10 22:00
    
por 10.02.2010 / 18:31
0

Dê uma olhada no comando at

    
por 10.02.2010 / 18:20

Tags