Adicionando um atraso aleatório para um comando do Linux

8

Estou usando o func para executar comandos paralelos em nossos servidores.

No outro dia, tivemos um problema quando uma reinicialização do serviço de puppet via func fez todos os nossos servidores atingirem o puppetmaster ao mesmo tempo.

Minha pergunta: Como posso executar o mesmo comando exato em um conjunto de servidores ao adicionar um atraso antes de ser executado nos servidores individuais?

Por exemplo: random_delay && service puppet restart

Estou interessado na parte random_delay do comando.

    
por Belmin Fernandez 07.01.2012 / 03:40

2 respostas

20

sleep $((RANDOM % MAXWAIT)) em que MAXWAIT é o atraso máximo desejado em segundos.

    
por 07.01.2012 / 03:42
1

Eu gosto bastante da solução inovadora, ainda que não ideal, do S19N. Eu só digo que é menos que ideal, pois ainda é pouco determinista quando as coisas realmente acontecem. Eu prefiro ser capaz de garantir quando as coisas vão acontecer, e que coisas vão acontecer quando acontecer.

A orquestração de fantoches é realmente um problema difícil .
Uma das soluções de "melhores práticas" é usar o MCollective que não só permitirá a configuração quando o fantoche for executado em seu cluster de máquinas , mas você também pode usá-lo para outros problemas de orquestração semelhantes.

    
por 07.01.2012 / 12:41