#!/bin/sh
#
#		Script que mantem a conexao adsl ativa no gnu/linux
#	Cesar Henrique Kallas
#	http://www.opensrc.co.nr	opensrc@gmx.net
# versao 1.5	20/10/2003 (testado no slackware)

# Qual interface voce deseja monitorar ? 
interface="ppp0"	# ppp0, ppp1, eth0, eth1, etc

# Verificar conexao a cada intervalo de tempo igual a:
tempo="3"		# acima de 0
unidade="m"		# s=segundos, m=minutos, h=horas, d=dias

# Nome do arquivo de log, e o caminho de gravacao do msm
log="AllwaysUpLog"		# cuidado com nomes invalidos
caminho="/var/log/adsl"		# sem a / (barra no final)

if [ "$UID" == 0 ]; then

    
#verifica se existe o caminho para gravacao do log
    if ! [ -e $caminho ]; then
	mkdir $caminho
    fi
    
    # verifica se existe um arquivo de log anterior
    if [ -e $caminho/$log ]; then
	cd $caminho
	echo -e "\n\n================" $(date +%d"/"%m"/"20%y" - "%k:%M:%S) "================" >> "_"$log
	cat $log >> "_"$log
	rm $log
    fi
    
	touch $caminho/$log 
	echo "======================================================="	>> $caminho/$log
	echo "=        MONITORAMENTO DA CONEXAO VIA AllwaysUP       ="	>> $caminho/$log
	echo "=   log da conexao ($interface) - iniciado dia $(date +%d/%m/20%y)   ="	>> $caminho/$log
	echo "=             linux - the future is open              ="	>> $caminho/$log
	echo "=           cesar kallas - opensrc@gmx.net            ="	>> $caminho/$log
	echo "=              http://www.opensrc.co.nr               ="  >> $caminho/$log
	echo "======================================================="	>> $caminho/$log
	echo -e "\n\n"	>> $caminho/$log
    

    while ! [ ]
    do
	if ! route | grep $interface > /dev/null  ; then
	{ # comandos que devem ser executados caso haja erro de conexao
	    echo -e "possivel ERRO na interface ($interface) : $(date)" >> $caminho/$log
	    adsl-stop &> /dev/null ; echo "Adsl-Stop"
	    sleep 10s
	    adsl-start &> /dev/null ; echo "Adsl-Start"
	    sleep 10s
	    lynx -dump -accept_all_cookies "http://200.171.222.97:86/speedywebapp/servlet/logon?CPURL=http://www.uol.com.br/&opcion=internet" &> /dev/null ; echo "Logando"
	    sleep 10s
	}
	#else
	# comandos que devem ser executados se tudo tiver OK
	    # echo "Conexao na interface ($interface) OK : $(date)" >> $caminho/$log
	    # echo "conexao $interface ok"
	fi
	
	# verifica se ta tendo ping de resposta
	if ! ping -c 10 www.uol.com.br &> /dev/null ; then
	    echo "Ping off ?!"
	    lynx -dump -accept_all_cookies "http://200.171.222.97:86/speedywebapp/servlet/logon?CPURL=http://www.uol.com.br/&opcion=internet" &> /dev/null ; echo "Logando"
	fi
	
	sleep $tempo$unidade
	
    done

else
    echo "Execute apenas com uid=0(root)"
fi
