#!/bin/bash DATE=`date +'%F %H:%M (%A)'` DIR=/home/g4slv/aggregator CHANGES=$DIR/changes RUNNING_GM=$DIR/running_gm OUTPUTGOPHERMAP=$DIR/outputgophermap PHLOGROLL=$DIR/phlogroll OLD=$DIR/old HEADER=$DIR/header.txt FOOTER=$DIR/footer.txt echo $DATE > $CHANGES COUNT=0 IFS=$'\n' set -f for i in $(cat < $PHLOGROLL); do #echo $COUNT set -f; IFS='/' set -- $i NAME=$1 HOSTPORT=$2 TARGET=$3 DIR1=$4 DIR2=$5 DIR3=$6 DIR4=$7 set -f; IFS=':' set -- $HOSTPORT HOST=$1 PORT=$2 echo -e "\n$HOST" PING=` curl --connect-timeout 5 -s "gopher://$HOST:$PORT" | wc -l` echo "Ping = $PING" if [ $PING != 0 ] then # echo "Ping not 0 for $HOST/$DIR1" set +f; unset IFS FILE=$(echo $NAME | tr -d '[:blank:]') touch $DIR/$FILE.md5 mv $DIR/$FILE.md5 $DIR/$FILE.old echo "$HOST UP" # echo "OLD = " ; cat $DIR/$FILE.old curl --connect-timeout 5 --max-time 10 -s "gopher://$HOST:$PORT/$TARGET/$DIR1/$DIR2/$DIR3" | md5sum > $DIR/$FILE.md5 # echo "New = "; cat $DIR/$FILE.md5 # echo "Curl complete for $HOST/$DIR1/$DIR2" # echo "Host $HOST, Target $TARGET, DIR1 $DIR1, DIR2 $DIR2" # echo "Host $HOST, DIR1 $DIR1, FILE, $FILE, OLD $OLD" DIFF=$(diff $DIR/$FILE.md5 $DIR/$FILE.old) # echo "Diff = $DIFF" echo "Diff check complete for $FILE diff = $DIFF" if [ "$DIFF" != "" ] then let COUNT=COUNT+1 echo "adding $HOST $TARGET" if [ "$DIR4" != "" ] then # echo "Dir = 4" echo -e "1$NAME /$DIR1/$DIR2/$DIR3/$DIR4 $HOST $PORT" >> $CHANGES else if [ "$DIR3" != "" ] then # echo "Dir = 3" echo -e "1$NAME /$DIR1/$DIR2/$DIR3 $HOST $PORT" >> $CHANGES else if [ "$DIR2" != "" ] then # echo "Dir = 2" echo -e "1$NAME /$DIR1/$DIR2 $HOST $PORT" >> $CHANGES else if [ "$DIR1" != "" ] then # echo "Dir = 1" echo -e "1$NAME /$DIR1 $HOST $PORT" >> $CHANGES else # echo "Dir = 0" echo -e "1$NAME / $HOST $PORT" >> $CHANGES fi fi fi fi fi else echo "$HOST DOWN" fi done cp $PHLOGROLL /srv/gopher/stuff/ cp $DIR/aggregator.sh /srv/gopher/stuff/aggregator.txt cp $DIR/make_phloglist.sh /srv/gopher/stuff/phloglist.txt echo "at end count = $COUNT" if [ "$COUNT" -ne 0 ] then cat $RUNNING_GM >> $CHANGES awk '{print}' $HEADER $CHANGES | head -n 30 > content.tmp mv content.tmp $OUTPUTGOPHERMAP; cat $OUTPUTGOPHERMAP mv $CHANGES $RUNNING_GM cat $FOOTER >> $OUTPUTGOPHERMAP cp $OUTPUTGOPHERMAP /srv/gopher/stuff/gophermap fi