Monit verificação de disponibilidade de rede

1

Gostaria de iniciar um serviço com o monit, mas somente quando eu tiver o ip correto vinculado ao host. Isso pode ser feito de alguma forma com a configuração normal? Por exemplo, eu quero iniciar um processo xxx com pidfile xxx.pid, mas somente se o host atualmente tiver 10.0.0.1 ligado a alguma interface.

    
por viraptor 24.12.2009 / 11:54

2 respostas

1

Provavelmente isso não pode ser feito em monitência pura.

Você pode escrever um script de shell que verifica se o IP está vinculado a alguma interface e apenas a iniciar o serviço, mas o efeito colateral é que o monit reclamará que o programa não foi iniciado se o arquivo pid não foi criado após o início da inicialização.

UPDATE: Você pode desativar esses avisos adicionando a instrução de alerta local :

 check process myproc with pidfile /var/run/my.pid
   alert foo@bar only on { timeout } 

UPDATE2: O script Bash pode ser algo assim (você precisa colocar o script de início real como argumento):

#!/usr/bin/env bash

for i in '/sbin/ifconfig -a | grep 'inet addr:' | awk '{print $2}' | sed -e 's/^.*://'' ;do
  if [ "$i" == "10.0.0.1" ] ; then
    $1
  fi
done
    
por 24.12.2009 / 13:22
1

A pergunta antiga é antiga: você pode usar o guessnet + ifupdown para isso.

    
por 04.02.2010 / 18:52