pcloop.bash 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/bin/bash
  2. trap "exit" INT
  3. basedir=`dirname "$0"`
  4. cd "$basedir/.."
  5. mailcfgfp="../conf/mail.conf"
  6. mailmta=`cat "${mailcfgfp}" | grep -P '^mta=' | sed -e 's/^mta=//' -e 's/^"//' -e 's/"$//'`
  7. mailfrom=`cat "${mailcfgfp}" | grep -P '^from=' | sed -e 's/^from=//' -e 's/^"//' -e 's/"$//'`
  8. mailto=`cat "${mailcfgfp}" | grep -P '^to=' | sed -e 's/^to=//' -e 's/^"//' -e 's/"$//'`
  9. subj=""
  10. lastmailts=$((0))
  11. newmailwait=$((12*60*60))
  12. resurrfp=".pcresurrectdone"
  13. cmdlogfp="peerscrawl.log"
  14. logfp="pcloop.log"
  15. 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
  16. function log {
  17. echo `date "+%Y-%m-%d %H:%M:%S.%N"` "${1}" >> "${logfp}"
  18. }
  19. while true; do
  20. dom=$(($(expr $(date "+%d") + 0)))
  21. [ $dom -lt $resdom -a -f "$resurrfp" ] && rm "$resurrfp"
  22. if [[ ($dom -ge $resdom ) && !(-f "$resurrfp") ]]; then # use a gracetime of 2 months
  23. touch "$resurrfp"
  24. log "### Starting peerscrawl.php with a 2 months gracetime ###"
  25. ./peerscrawl.php -g 2M -e peerscrawl.exclude &> $cmdlogfp
  26. else # use the default gracetime
  27. log "### Starting peerscrawl.php with the default gracetime ###"
  28. ./peerscrawl.php -e peerscrawl.exclude &> $cmdlogfp
  29. fi
  30. pcrv=$?
  31. tail $cmdlogfp >> $logfp
  32. log "### THE END ###"
  33. cp "$cmdlogfp" "${cmdlogfp}.old"
  34. now=$(($(expr $(date "+%s") + 0)))
  35. if [ $(($now-$lastmailts)) -gt $newmailwait ]; then
  36. [ $pcrv == "0" ] && subj="peerscrawl.php: tutto ok :-)" || subj="peerscrawl.php: uscito con errore: ${pcrv} :-("
  37. tail $logfp | s-nail -s "${subj}" -S v15-compat -S from="${mailfrom}" -S smtp-use-starttls -S mta="${mailmta}" "${mailto}"
  38. lastmailts=$(($(expr $(date "+%s") + 0)))
  39. fi
  40. done
  41. exit 0;