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