#!/bin/rc # used /usr/stevie/gopher/links/glist-new # BUG: needs heavy rework, very confusing variable naming verbose=$1 datum=`{date | sed 's/\ /_/g'} d=`{date -n} oldnr=`{grep '^\[1' /usr/stevie/gopher/links/index.gph | wc -l | awk '{print $1}'} olddead=`{wc -l `{ls -t /tmp/gopheralive | grep '\-dead' | sed 2q | tail -n 1} | awk '{print $1}'} domainnr=`{wc -l /usr/stevie/gopher/links/glist-new | awk '{print $1}'} begin=`{date | sed 's/\ /_/g'} fn pingserver { for(i in `{read -m /usr/stevie/gopher/links/glist-new}){ c=`{netscan $i 70| grep 'open'} switch($#c){ case 0 if(~ $verbose v) echo -n '-' echo $i >>/tmp/gopheralive/glist-$d-dead case * if(~ $verbose v) echo -n '+' echo $i >>/tmp/gopheralive/glist-$d-alive } } } fn data { end=`{date | sed 's/\ /_/g'} nr=`{wc -l /tmp/gopheralive/glist-$d-alive | awk '{print $1}'} dead=`{wc -l /tmp/gopheralive/glist-$d-dead | awk '{print $1}'} diff=`{echo $nr '-' $oldnr | hoc} diffdeadn=`{echo $dead '-' $olddead | hoc} alivepercent=`{echo 100 '*' $nr '/' $domainnr | hoc | sed 's;\.[0-9]*;;'} if(~ `{echo $diff | grep '-'} '') diff=+$diff if(~ `{echo $diffdead | grep '-'} '') diffdeadn=+$diffdeadn diffalive=`{ls -t /tmp/gopheralive | grep '\-alive' | sed 2q} diffdead=`{ls -t /tmp/gopheralive | grep '\-dead' | sed 2q} { echo diff `{echo $diffalive(2)} `{echo $diffalive(1)} diff `{echo $diffalive(2)} `{echo $diffalive(1)} echo echo diff `{echo $diffdead(2)} `{echo $diffdead(1)} diff `{echo $diffdead(2)} `{echo $diffdead(1)} } >/usr/stevie/gopher/links/diff-alive.txt # calculate diff from yesterday diffplus=`{diff `{echo $diffalive(2)} `{echo $diffalive(1)} | grep '>' | wc -l} diffminus=`{diff `{echo $diffalive(2)} `{echo $diffalive(1)} | grep '<' | wc -l} } fn format { echo '[i|'$datum'|/links|kamalatta.ddnss.de|70]' echo '[i|gopher servers alive: '$nr'/'$domainnr' '$alivepercent'%|/links|kamalatta.ddnss.de|70]' echo '[i|diff since yesterday: +'$diffplus' -'$diffminus'|/links|kamalatta.ddnss.de|70]' echo '[0|diff from yesterday|/links/diff-alive.txt|kamalatta.ddnss.de|70]' awk '{print $0, $0}' /tmp/gopheralive/glist-$d-alive | sed 's/^/&[1|/g;s/\ /|\/|/g;s/$/&|70]/g' echo ' [i|gopher servers dead: '$dead'|/links|kamalatta.ddnss.de|70] ' awk '{print $0, $0}' /tmp/gopheralive/glist-$d-dead | sed 's/^/&[i|/g;s/\ /|\/|/g;s/$/&|70]/g' } fn log { { echo $datum echo search: $begin - $end echo current /usr/stevie/gopher/links/glist-new has $domainnr domains. echo current index.gph has $oldnr alive servers! echo found $nr alive and $dead dead gopher servers! echo diff: `{echo $nr '-' $oldnr | hoc} since yesterday! echo alive: /tmp/gopheralive/glist-$d-alive echo dead: /tmp/gopheralive/glist-$d-dead echo } >> /usr/stevie/lib/gopherstat/gopheralive.log } pingserver data format log