#!/bin/bash trap "exit" INT basedir=`dirname "$0"` cd "$basedir/.." mailcfgfp="../conf/mail.conf" mailmta=`cat "${mailcfgfp}" | grep -P '^mta=' | sed -e 's/^mta=//' -e 's/^"//' -e 's/"$//'` mailfrom=`cat "${mailcfgfp}" | grep -P '^from=' | sed -e 's/^from=//' -e 's/^"//' -e 's/"$//'` mailto=`cat "${mailcfgfp}" | grep -P '^to=' | sed -e 's/^to=//' -e 's/^"//' -e 's/"$//'` subj="" lastmailts=0 newmailwait=$((12*60*60)) resurrfp=".pcresurrectdone" cmdlogfp="peerscrawl.log" logfp="pcloop.log" resdom=25 # day of month when (or after when, if it has not been done already) to execute peerscrawl.php with a gracetime of 2 months function log { echo `date "+%Y-%m-%d %H:%M:%S.%N"` "${1}" >> "${logfp}" } while true; do dom=$((`date "+%d"`+0)) [ $dom -lt $resdom -a -f "$resurrfp" ] && rm "$resurrfp" if [[ ($dom -ge $resdom ) && !(-f "$resurrfp") ]]; then # use a gracetime of 2 months touch "$resurrfp" log "### Starting peerscrawl.php with a 2 months gracetime ###" ./peerscrawl.php -g 2M -e peerscrawl.exclude &> $cmdlogfp else # use the default gracetime log "### Starting peerscrawl.php with the default gracetime ###" ./peerscrawl.php -e peerscrawl.exclude &> $cmdlogfp fi pcrv=$? tail $cmdlogfp >> $logfp log "### THE END ###" cp "$cmdlogfp" "${cmdlogfp}.old" now=$((`date "+%s"`+0)) if [ $(($now-$lastmailts)) -gt $newmailwait ]; then [ $pcrv == "0" ] && subj="peerscrawl.php: tutto ok :-)" || subj="peerscrawl.php: uscito con errore: ${pcrv} :-(" tail $logfp | s-nail -s "${subj}" -S v15-compat -S from="${mailfrom}" -S smtp-use-starttls -S mta="${mailmta}" "${mailto}" lastmailts=$((`date "+%s"`+0)) fi done exit 0;