Como tornar o cronjobs high disponível?

6

Qual seria uma boa solução para fazer um par de failover que possui vários cronjobs em execução para evitar a execução dos processos duas vezes?

No failover, ou dividindo os trabalhos entre eles e, claro, podendo assumir todos os trabalhos quando um dos nós falhar.

Eu poderia escrever um script para isso, mas alguém deve ter corrigido isso já, ou é um pedido tão incomum?

    
por Bas Grolleman 27.01.2011 / 16:34

3 respostas

5

Se você tiver algum tipo de solução de cluster para fornecer alta disponibilidade, é bastante simples fazer isso.

Nós configuramos todas as tarefas cron em ambos (ou todos) nós em um cluster. Cada trabalho começa executando um pequeno script que funciona se esse é o nó mestre no cluster ou não (verificando o endereço IP flutuante do cluster). Se este não for o nó principal, o script check_for_master é encerrado com um erro que faz com que toda a tarefa do cron falhe. Se esse nó for o mestre, o script check_for_master executará o trabalho como normal.

O conteúdo do script check_for_master realmente depende de qual software de cluster você está usando e do SO que você está executando.

Por exemplo, aqui está uma entrada crontab de amostra:

00 04 * * * /usr/local/bin/check_for_master /usr/local/bin/program-you-want-to-run >/tmp/logfile.out 2>&1
    
por 27.01.2011 / 16:53
2

Você pode usar o rcron 'para esse problema específico. O Rcron lhe oferece um arquivo de estado, que simplesmente diz "ativo" ou "passivo", e se estiver ativo, seu cron será executado em uma determinada máquina. Se o arquivo de estado estiver definido como passivo, ele não será executado. Simples assim.

Suas tarefas do cron que costumavam parecer:

* * * * *    root    echo "foobar"

precisará ser alterado para:

* * * * *    root    rcron echo "foobar"

e é isso.

    
por 07.03.2014 / 22:04
-1

Acho que o que você está procurando é mais um sistema de agendamento de tarefas (como usado em clusters de computação). É claro que você não precisará de mais coisas, mas ajustar o cron para fazer as coisas que você precisa é mais trabalho do que avaliar uma ferramenta como essa.

    
por 27.01.2011 / 16:42