A sugestão do logger foi anotada. Segue o isconnect.sh

#!/bin/bash
#isconnect.sh
# script para monitoracao da conexao com a internet
# desenvolvido por Gustavo Feijo ([EMAIL PROTECTED])

ip_remoto=216.239.51.104                # ip que servira como base de 
teste (www.google.com)
administrador='[EMAIL PROTECTED]'    # quem recebe os logs
host=`hostname`
connect=true
LOG=/var/log
NAME=isconnect
DAEMON=/home/admin/scripts/isconnect.sh
PIDFILE=/var/run/$NAME.pid
DHCP=true

while [ 1 ]; do
data=`date +%Y%m%d`
tempo=0
limite=5                                # limite de tempo offline (em 
minutos)

   if ping -c 3 $ip_remoto 1>/dev/null 2>/dev/null
   then
      connect=true
   else
      connect=false
      time_down=`date +%r`
      echo -e "---- date ----\nHor\xe1rio de queda --> $time_down" >> 
$LOG/isconnect.log_$data
   fi

   while [ "$connect" == "false" ]; do
      if ping -c 3 $ip_remoto 1>/dev/null 2>/dev/null
      then
         connect=true
         time_up=`date +%r`
         echo "Hor\xe1rio de retorno --> $time_up" >> 
$LOG/isconnect.log_$data
         echo "Tempo offline --> aproximadamente: $tempo minuto(s)" >> 
$LOG/isconnect.log_$data
         echo -e '----\n' >> $LOG/isconnect.log_$data
         if [ $tempo -gt $limite ]
         then
            /usr/bin/tail -n 6 $LOG/isconnect.log_$data | mail 
"$administrador" -s "[ $host ] $tempo minutos offline"
         fi
      else
         if [ $DHCP == "true" ]
         then
          /sbin/dhclient
         fi
         let "tempo = $tempo + 1"
         sleep 60
      fi
   done
   sleep 5
done


;-)
chmod000
"Microsoft butterfly is their way of telling you
their system has a lot of [EMAIL PROTECTED] bugs..."


Reinaldo Carvalho escreveu:
> Você poder usar o comando "logger" para gravar as informações via
> syslog, e se tiver o postfix instalado, use o comando postlog (esse é
> mais legal)
> 
> Ex: postlog -t isconnect[$$] '[ ERR ]: Something bad happens'
> 
> Acho que faltou você enviar o conteudo do: /sbin/isconnect.sh
> 
> Acho que esse tratamento do "$?" pode ficar dentro do
> /sbin/isconnect.sh, eh que ele mesmo grave no log. E talvez essa
> abordagem do start-stop-daemon não fosse a melhor para este caso.
> 
> 
> On 8/7/06, Gustavo Pardellas Feijó <[EMAIL PROTECTED]> wrote:
>  > Pessoal, desenvolvi um script que testa a conexão e, caso ela caia,
>  > começa a escrever um log com o horário de queda. Tão logo quanto a
>  > conexão se restabeleça grava no log o horário de retorno e o tempo
>  > aproximado em que ficou offline, em seguida envia um e-mail para o
>  > administrador para que ele tome ciência da perda de conexão.
>  >
>  > Estou bem satisfeito com o script, mas é claro que os colegas com mais
>  > experiência podem contribuir com uma dica, linha ou comando diferente.
>  >
>  > Segue em anexo as duas partes do script.
>  >
>  > []'s
>  > --
>  >
>  > ;-)
>  > chmod000
>  > "Microsoft butterfly is their way of telling you
>  > their system has a lot of [EMAIL PROTECTED] bugs..."
>  >
>  >   ----------
>  >
>  > #!/bin/bash
>  > NAME=isconnect
>  > DAEMON=/sbin/isconnect.sh
>  > DESC="Is your server connect?"
>  > PIDFILE=/var/run/$NAME.pid
>  > PID=`ps xua | awk '/${DAEMON}/ { print $2 }' | grep -v awk`
>  >
>  > case "$1" in
>  >   start)
>  >      echo -n "Starting: $NAME  "
>  >      start-stop-daemon --start --quiet --background --make-pidfile 
> --pidfile "$PIDFILE" --exec $DAEMON
>  >      if [ $? == 0 ]
>  >      then
>  >        echo "[ OK ]"
>  >      else
>  >        echo "[ ERR ]: Something bad happens"
>  >      fi
>  >      ;;
>  >   stop)
>  >      echo -n "Stopping: $NAME  "
>  >      start-stop-daemon --stop --quiet --pidfile /var/run/${NAME}.pid
>  >      if [ $? == 0 ]
>  >      then
>  >        echo "[ OK ]"
>  >        rm -f $PIDFILE
>  >      else
>  >        echo -e "[ ERR ]: Something bad happens.\n\t Trying kill -9."
>  >        kill -9 `cat $PIDFILE`
>  >          if [ $? ==0 ]
>  >          then
>  >            echo "[ OK ]"
>  >            rm -f $PIDFILE
>  >          else
>  >            echo "[ ERROR ]: Something realy bad is happen.\n This is 
> your process id [ `cat $PIDFILE` ].\n You're by your own."
>  >            exit
>  >          fi
>  >      fi
>  >      ;;
>  >   restart)
>  >      $0 stop
>  >      $0 start
>  >      ;;
>  >   *)
>  >      echo "Usage: $0 [start || stop || restart]"
>  >      exit
>  >      ;;
>  > esac
>  >
>  >
>  > [As partes desta mensagem que não continham texto foram removidas]
>  >
>  >
>  >
>  > ---------------------------------------------------------------------
>  > Esta lista não admite a abordagem de outras liguagens de programação, 
> como perl, C etc. Quem insistir em não seguir esta regra será moderado 
> sem prévio aviso.
>  > ---------------------------------------------------------------------
>  > Sair da lista: [EMAIL PROTECTED]
>  > ---------------------------------------------------------------------
>  > Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
>  > ---------------------------------------------------------------------
>  > Servidor Newsgroup da lista: news.gmane.org
>  > Grupo: gmane.org.user-groups.programming.shell.brazil
>  >
>  >
>  > Links do Yahoo! Grupos
>  >
>  >
>  >
>  >
>  >
>  >
>  >
>  >
>  >
> 
> 
> -- 
> Reinaldo Carvalho
> Debian Sarge 3.1 - Linux User: #238310
> Prodepa - [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a