Pergunta de execução Cron

3

Suponha que eu configure um cron job com anacron ou com crontab -e .

Agora, e se minha máquina estiver desligada no momento em que o cron tiver executado o trabalho agendado?

O trabalho seria executado assim que minha máquina fosse ligada? Ou não seria executado de todo?

    
por MadHatter 29.05.2015 / 20:18

3 respostas

4

Se você estiver usando cron , o trabalho não será executado se o computador estiver desligado nesse momento.

Se você estiver usando anacron para esse trabalho, ele será executado quando o computador for ligado na próxima vez. O tempo de execução precisa de alguma explicação. Observe que a menor unidade de tempo de anacron é dia, portanto, você só pode definir um trabalho anacron que terá uma frequência para executar de 1 dia ou mais.

Aqui está uma entrada de amostra de /etc/anacrontab :

1       5       cron.daily      run-parts --report /etc/cron.daily
  • O primeiro 1 indica que esse trabalho será executado a cada dia (frequência = 1 dia)

  • 5 indica que haverá 5 minutos de atraso após o início do computador antes de executar este trabalho

  • cron.daily é o identificador de trabalho para anacron , é usado para identificar tarefas específicas no diretório de spool /var/spool/anacron/

  • run-parts --report /etc/cron.daily é o comando a ser executado.

Portanto, se o seu computador estiver desativado no momento da execução do trabalho, anacron verificará o registro de data e hora da última execução em /var/spool/anacron/cron.daily . Se ele foi executado no dia anterior ou anterior, o anacron executará o trabalho e atualizará o registro de data e hora de acordo.

O Ubuntu usa anacron para trabalhos diários, semanais e mensais. De /etc/crontab :

05 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

Como você pode ver todos os dias às 6h05, os trabalhos diários serão executados a partir de /etc/cron.daily . Se anacron existir, ele analisará /etc/anacrontab (e executará run-parts para executar os arquivos em /etc/cron.daily ), caso contrário, cron usará run-parts para executar diretamente todos os arquivos em /etc/cron.daily .

Se o computador estiver Desligado nesse momento, anacron executará o trabalho depois de ligá-lo na próxima vez, de acordo com as instruções do arquivo /etc/anacrontab .

    
por heemayl 29.05.2015 / 20:57
5

O cron nunca iniciará um trabalho quando o sistema estiver desligado quando o tempo para o trabalho cron for aprovado. Os trabalhos podem ser executados em minutos.

O anacron inicia um trabalho quando um sistema é desligado. Mas anacron só pode ser definido para dias. Nada menor.

O anacron é usado para desktops, então o Ubuntu tem este ativo (espera-se que os desktops sejam desligados reguralmente). O cron é usado principalmente para servidores (essas máquinas tendem a permanecer permanentemente).

    
por Rinzwind 29.05.2015 / 20:21
1

crontab como qualquer outro agendador ou qualquer outro que não funcione quando o computador está desligado.

  

o cron é um utilitário unix que permite que tarefas sejam executadas automaticamente   o plano de fundo em intervalos regulares pelo daemon do cron. Essas tarefas   são frequentemente denominados como cron jobs no unix. Crontab (Tabela CRON) é um   arquivo que contém o cronograma de entradas do cron para ser executado e em   horários especificados.

Então, execute o cron executando o comando

 crontab -e

irá abrir o arquivo cron no seu editor padrão.

Adicione a entrada do seu comando agendado

*     *     *   *    *        command to be executed
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- day of week (0 - 6) (Sunday=0)
|     |     |   +------- month (1 - 12)
|     |     +--------- day of        month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)

Então, agora, para sua pergunta, suponha que eu tenha esta entrada no cron:

30 23 31 5 * apt-get install foo

Isso eu quero instalar o pacote foo em 31-5-2015 às 23:30

Então, o que acontece se o computador estiver desligado neste momento

em palavras simples, o cron não é executado e nunca será executado

Agora, suponha que eu tenha esta entrada no cron:

30 23 * 5 * apt-get install foo

Isso eu quero instalar o pacote foo em qualquer dia do mês 5-2015 às 23:30

Então, o que acontece se o computador estiver desligado neste momento

em palavras simples, o cron não é executado, mas você ainda tem alguma oportunidade de executar em qualquer dia do mês 5 deste ano às 23:30.

Como conclusão

O cron não apenas retornará para completar se o PC estiver desligado no momento em que ele tiver que ser executado, como será executado na hora específica nas entradas do crontab.

    
por Maythux 30.05.2015 / 08:57

Tags