RES: Mcafee autoupdate

Tony Finch dot at DOTAT.AT
Fri Apr 11 18:08:48 IST 2003


Roberto Campos <roberto at MEUPROVEDOR.COM.BR> wrote:
>Ok, so it's not working.
>I've tryed it my own and it's reporting this:
>#McAfee update failed: cannot find the update file, Connection timed out
>at /usr/lib/MailScanner/mcafee-autoupdate line 99.

That's an indication of network problems.

I've posted this before, but the current version of my uvscan-update
script is even more careful than it was. Unfortunately I can't edit the
version in the faq-o-matic; I can only append which is ugly and leads to
repetition. (You also can't fix broken item titles, which is a bit ugly.
Perhaps it should be a wiki instead...)

        #!/bin/sh -e
        #
        # Update the McAfee data files.
        #
        # $Cambridge: hermes/build/bin/uvscan-update,v 1.14 2003/04/11 16:57:33 fanf2 Exp $

        LIBDIR=/opt/uvscan

        FTPDIR=ftp://ftpeur.nai.com/pub/antivirus/datfiles/4.x

        # version number pattern
        MATCH=[0-9][0-9][0-9][0-9]

        # work out latest dat version
        SED="/^DATVersion=\($MATCH\).$/!d;s//\1/;q"
        VERSION=$(wget -q -O- $FTPDIR/update.ini | sed -e "$SED")

        DATDIR=$LIBDIR/$VERSION
        FILE=dat-$VERSION.tar

        badversion () {
                echo Failed to get McAfee datfile update from "$FTPDIR"
                echo FTP version number "\"$VERSION\"" "$@"
                exit 1
        }

        # check the format of the version number
        case $VERSION in
        $MATCH) : ok
                ;;
        *)      badversion does not match "$MATCH"
                ;;
        esac

        # already got it?
        if [ -d $DATDIR ]
        then
                # keep cron quiet by default
                case $1 in
                -v)     echo Already have "$VERSION"
                esac
                exit
        fi

        # work out installed dat version
        cd $LIBDIR
        if ls -d $MATCH >/dev/null 2>&1
        then
                INSTALLED=$(ls -d $MATCH | tail -1)
        else
                # no installed version so get whatever is available
                INSTALLED=0000
        fi

        # check new version is actually newer
        if [ $VERSION -lt $INSTALLED ]
        then
                badversion older than installed "$INSTALLED"
        fi

        echo Installed dat file is "$INSTALLED"
        echo Latest dat file is "$VERSION"

        # now we are verbose
        run() {
                echo ">" "$@"
                "$@"
        }

        # fetch and extract dat files
        run mkdir $DATDIR
        run cd $DATDIR
        run wget --progress=dot:mega $FTPDIR/$FILE
        run tar xvf $FILE

        # verify the contents
        fail () {
                echo "$OUT"
                echo Test run failed -- removing bad McAfee data files
                run rm -rf $DATDIR
                exit 1
        }
        trap fail EXIT
        CMD="uvscan --dat $DATDIR --version 2>&1"
        echo '> OUT=$('$CMD')'
        OUT=$($CMD)
        case "$OUT" in
        *"Missing or invalid DAT"* | \
        *"Data file not found"* | \
        *"Removal datafile clean.dat not found"* | \
        *"Unable to remove viruses"* )
                fail
                ;;
        esac
        trap EXIT

        echo "$OUT"
        echo Update OK
        # change the current dat file links
        run cd $LIBDIR
        run ln -sf $VERSION/*.dat .
        # remove some crap
        run cd $DATDIR
        run rm -f *.exe *.tar *.txt

        echo
        echo Completed OK

        # done

Tony.
--
f.a.n.finch  <dot at dotat.at>  http://dotat.at/
BISCAY: EASTERLY 4 IN NORTH AT FIRST, OTHERWISE WEST BACKING SOUTHEAST 5 TO 7.
RAIN OR SHOWERS. MODERATE OR GOOD.



More information about the MailScanner mailing list