O trabalho do Cron não é executado uma vez por semana

3

Temos um trabalho que está definido para ser executado de segunda a sexta-feira. Até duas semanas atrás, correu bem 5 dias por semana. Nas últimas duas semanas, falhou na segunda-feira. Não consigo localizar onde encontrar o ponto de falha.

### Example Scripts
0 2 * * 1-5 /admin/scripts/example.exp 1>/dev/null 2>&1

Nós executamos o AIX 7.1.

Eu olhei no / var / log / e não há arquivo cron nele. Procurando por conselhos para adicionar a isso para que possamos solucionar.

Descobri que o log está localizado em /var/adm/log . Além disso, estamos recebendo este erro repetidamente desde essa data / hora. Como faço para limpar esse limite máximo?

c queue max run limit reached Fri Nov 25 21:52:00 2016
! rescheduling a cron job Fri Nov 25 21:52:00 2016
    
por brodimaggio12 05.12.2016 / 15:40

3 respostas

5

A mensagem de erro c queue max run limit reached significa que você atingiu o limite de cron empregos simultâneos.

Acredito que a configuração padrão para cron no AIX é de 50 tarefas simultâneas, portanto, é necessário investigar por que você tem 50 tarefas em execução ao mesmo tempo. (Talvez sejam várias instâncias do mesmo trabalho que se sobrepõem.)

Essas duas linhas devem fornecer a lista de tarefas em execução em cron e, a partir daí, você deve investigar a causa raiz do problema:

p=$(ps -ef | awk '/[c]ron/{print $2}' | xargs | tr ' ' '|')
ps -ef | egrep "\<($p)\>"

Se você realmente precisa aumentar o número de trabalhos simultâneos, você pode encontrar a configuração em /var/adm/cron/queuedefs :

c.50j20n60w

onde

  • c = A cron fila
  • Nj = O número máximo de trabalhos a serem executados simultaneamente por cron
  • Nn = O valor nice dos jobs a serem executados (o padrão é 2)
  • Nw = O tempo que um trabalho tem que esperar até a próxima tentativa de executá-lo

Consulte o link para obter a fonte específica do AIX para esta resposta.

    
por 05.12.2016 / 17:51
2

O formato do seu crontab sugere que ele seja um crontab do usuário (em oposição a um crontab do sistema que adiciona um campo "user" após a especificação da hora).

Com seus redirecionamentos, você está se privando de mensagens de log informativas. Tente isso:

0 2 * * 1-5 /admin/scripts/example.exp >> $HOME/cron.log 2>&1

E você obterá o resultado da execução em um arquivo cron.log em seu diretório pessoal.

    
por 05.12.2016 / 16:12
1

Em uma instalação padrão, as tarefas agendadas são registradas em log

/var/log/syslog

Você pode ver apenas tarefas do cron nesse arquivo de log executando

grep CRON /var/log/syslog

Se você não tiver reconfigurado nada, as entradas estarão lá.

    
por 05.12.2016 / 15:44

Tags