#!/bin/bash
#set -xv
#############################################################
#
#  Beispielscript fuer das IP-Update 
# 
#  http://www.wer-ist-ulli.de/dynip
#
#  mail@u-herrmann.de
#
#############################################################
#
# hier unten die Parameter anpassen
#
file="demo" # unter welchem Namen soll das erreicht werden
link="verzeichnis" # wohin geht es auf Deinem Server
index="index.php" # welche Datei ist da gemeint 
mail="mail@u-herrmann.de"  # Deine Mailadresse
passwd="blaFASELtuet" # ein Password
bild="online/pic/uhatonline.gif" # ein Bildchen
javalinktext="Hier_lang" # 
refresh="3" # nach 3 sek weiterleiten, 0=sofort oder
            # keine Angabe dann nicht automatisch weiterleiten  
heartbeat=300 # alle 300 sek updaten
hidden=0 # Link nicht verstecken 1 verstecken 
DIR="/tmp/dynip_demo" # Arbeitsverzeichnis
PROTO="dynip_protokoll" # Protokolldatei
STATUS="dynip_status" # Protokolldatei
num=0 # zaehler
URL="www.wer-ist-ulli.de/cgi-bin/dynip.cgi?FILE=$file\&PASSWD=$passwd"
URL="$URL\&LINK=$link\&INDEX=$index\&MAIL=$mail\&BILD=$bild\&JAVALINK=$javalinktext"
URL="$URL\&REFRESH=$refresh\&SEK=$heartbeat\\"

##########################################################
# Diese Parameter reichen aus 
# unterhalb dieser Zeilen solltest Du wissen was Du tust
##########################################################
OUT="dyn_wget.out"
cou=0
if test ! -d $DIR
    then
       mkdir $DIR 
    fi
cd $DIR
##########################################################
if test "$hidden" = "1" 
   then
    hidden="\&HIDDEN=1"
   else
    hidden=""
   fi 
##########################################################
status()
{
cat $PROTO
cat $STATUS
}
##########################################################
clearfile()
{
echo "Datei $PROTO geloescht von $$ " > $PROTO
}
##########################################################
stopab()
{
st=`cat $STATUS | awk '{print $2}' `
kill -9 $st >> /dev/null 2>&1
ERG=$?
if test "$ERG" = 0 
    then
    echo " Prozess $st gestopt "
    echo " STOP " > $STATUS
  else
    echo " Kein Prozess Sorry "
  fi 
}
##########################################################
schleife()
{
st=`cat $STATUS | awk '{print $1}' `
if test "$st" = "RUN"
        then
             status
             echo " Script $0 laeuft "
             exit
        fi
echo " Gestartet `date` " >> $PROTO
echo "RUN $$" > $STATUS
   while true
     do
num=` expr $num + 1 `
echo "LEER" > $OUT  # Datei "ausleeren"
echo -n "Starte update $num `date` " >> $PROTO
wget -o/dev/null -O$OUT http://$URL\&NUM=$num$hidden 
grep ERFOLGREICH $OUT >> /dev/null ; ERG=$?
if test $num = 1 
    then 
     echo " ONLINE NUM $num `date` " >> $PROTO
    fi
if test $ERG = 0 
    then
       echo -n "." >> $PROTO
       cou=`expr $cou + 1 `
            if test $cou -gt 30
               then
                 cou=0 ; echo -e "\n`date`" >> $PROTO
              fi 
    else
     echo " Ein Fehler ist auf getreten! ABBRUCH  ERG $ERG "
     cat $OUT
     echo "Sehen sie in $OUT nach"
     exit
    fi
      sleep $heartbeat # hier warten 
done
}
#############################################
arg=$1

case $arg in
   stop)  stopab ;;
   start)   $0 startean  & ;;
   startean)  schleife ;;
   status) status ;;
   clear) clearfile ;;
   *) echo "  usage: $0 start|stop|status|clear" ;;
esac
 

echo "ende"


