Como reagendar um job no para ser executado antes?

1

Suponha que eu tenha agendado um trabalho at para ser executado 3 horas depois:

$ echo command | at now +3 hours
$ atq
9     Mon Dec  5 14:00:00 2016 a nr

mas tendo passado 1 hora, mudei de ideias e, em seguida, preciso executar esse trabalho específico #9 da fila a imediatamente, ou seja, duas horas antes da hora em que está programado para ser executado.

Como posso fazer isso?

Sei que posso imprimir o comando do trabalho em stdout , copiá-lo e colá-lo na linha de comando, executá-lo manualmente e depois remover o trabalho #9 :

$ at -c 9
command
$ command
$ atrm 9

Mas isso equivale a executar outro trabalho, não #9 da fila a .

    
por n.r. 05.12.2016 / 13:14

1 resposta

1

Existem duas possibilidades:

  • Primeiro, há um método no stackoverflow.com sobre isso
    • Ele preserva o número do trabalho
  • Em segundo lugar, usando a para duplicar o trabalho em um novo horário:

    at -c 9 | at now + 1 hour -- reschedule job 9 from whenever to now + 1 hour
    atrm 9                    -- Removed the old job
    
por 21.12.2016 / 00:44

Tags