On Fri, 18 Dec 2009, Stephen Harris wrote:

You can always run multiple copies of fetchmail in the background if you
want parallel fetching

or run just one tenth of those RC files (when well numbered) present each time a script is invoked, if you are not in a hurry to retrieve email from side accounts, and want to be kind to the remote pop hosts

-- Russ herrold

#!/bin/sh
#
#       ~/bin/get-stray-email.sh
#       $Id: get-stray-fetchmail.sh,v 1.3 2009/10/23 13:48:47 herrold Exp 
herrold $
#       License: GPLv3+
#       bug reports to:  i...@owlriver.com
#
#       use fetchmail with custom rc files, and pull
#       upgrade to use a 0-9 rotor to spread load
#
export 
PATH='/usr/java/latest/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:~/bin/:/home/herrold/bin:~/bin/'
#
#       the config files live in a protected directory
export FETCHRC=".fetchmail"
cd [ ! -d $FETCHRC/ ] && {
        mkdir $FETCHRC/
        chmod 700 $FETCHRC
        }
#
#       defaults, and options parsing
#       need to more into a while loop, and add a scan exit
QUIET="--silent "
DEBUG=""
[ "x$1" = "x-d" ] && {
        export DEBUG="y "
        shift 1
        }
[ "x$1" = "x-v" ] && {
        export QUIET=""
        export VERBOSE="--verbose "
        shift 1
        }
[ "x${QUIET}" = "x" ] && {
        export QUIET=""
        export VERBOSE="--verbose "
        }
#
#       option $1 support being refactored; out for the moment
#       Remembering Jimi ...
[ "xsix" = "x9" ] && {
#
# SUFFIX works when we cd into $FETCHRC and have the file naming set up # right
SUFFIX=".fetchmailrc-gmail"
[ "x$1" != "x" ] && {
        export SUFFIX=`echo ".fetchmailrc-gmail$1"`
#       make sure we have one
        [ ! -e ~/$FETCHRC/$SUFFIX ] && export SUFFIX=""
#
#       actually we need to stop scanning options here
        shift 1
        }
        }
#
#       main body
#       New model is to run a rotor
[ ! -e $FETCHRC/.fetch-rotor ] && touch $FETCHRC/.fetch-rotor
LASTRUN=` ( echo -n "0" ; cat $FETCHRC/.fetch-rotor | \
        perl -p -e "tr/[0-9]//cd" ) `
[ "0$LASTRUN" -lt 1 ] && echo "00" > $FETCHRC/.fetch-rotor
LASTRUN=` ( ( cat $FETCHRC/.fetch-rotor  | \
        perl -p -e "tr/[0-9]//cd" ; echo " + 0" ) | bc ) `
[ "x${DEBUG}" != "x" ] && echo "Rotor is: $LASTRUN" 1>&2
#
#       main loop
for i in ` ls -1 $FETCHRC/.fetchmailrc-*[0-9] | grep "${LASTRUN}$" `; do
        [ "x${VERBOSE}" != "x" ] && {
                echo "i: $i" 1>&2
                }
        [ -e ${i} ] && fetchmail -f ${i} -a ${QUIET} ${VERBOSE} || {
                echo "Error: non-zero return code on: $i " 1>&2
                grep -v "^#" $i | grep -v "[ ]" 1>&2
                grep "user" $i 1>&2
                }
        sleep 3
#       sleep 30
done
#
LASTRUN=` echo "${LASTRUN} + 1" | bc | rev | cut -c 1 | rev`
#       echo "new LASTRUN: $LASTRUN"
echo "$LASTRUN" > $FETCHRC/.fetch-rotor
#
#
exit 0
#
#
#       This is a sample ~/.fetchmail/.
cat - << END > /dev/null
#
#       gmail pop works
#       sample fetchmail -f config file
poll pop.gmail.com with proto pop3:
        port 995
        timeout 60
        user "gmailuse...@gmail.com" there with
        password "GMAILPASSWORD"
        is LOCALUSERID here
        fetchall
        expunge 50
        options ssl
#
END
#

Attachment: get-stray-fetchmail.sh
Description: Bourne shell script

_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos

Reply via email to