<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kb.rvmgroup.it/index.php?action=history&amp;feed=atom&amp;title=Script_autopdate_mcafee_per_Linux</id>
	<title>Script autopdate mcafee per Linux - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://kb.rvmgroup.it/index.php?action=history&amp;feed=atom&amp;title=Script_autopdate_mcafee_per_Linux"/>
	<link rel="alternate" type="text/html" href="https://kb.rvmgroup.it/index.php?title=Script_autopdate_mcafee_per_Linux&amp;action=history"/>
	<updated>2026-05-06T00:59:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://kb.rvmgroup.it/index.php?title=Script_autopdate_mcafee_per_Linux&amp;diff=3700&amp;oldid=prev</id>
		<title>Gabriele.vivinetto at 13:42, 7 November 2005</title>
		<link rel="alternate" type="text/html" href="https://kb.rvmgroup.it/index.php?title=Script_autopdate_mcafee_per_Linux&amp;diff=3700&amp;oldid=prev"/>
		<updated>2005-11-07T13:42:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Creazione dello script ==&lt;br /&gt;
&lt;br /&gt;
Creare lo script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; /usr/local/sbin/mcafee-autoupdate &amp;lt;&amp;lt; &amp;#039;EOFile&amp;#039;&lt;br /&gt;
#!/bin/sh -e&lt;br /&gt;
#&lt;br /&gt;
# Update the McAfee data files.&lt;br /&gt;
#&lt;br /&gt;
# $Cambridge: hermes/build/bin/uvscan-update,v 1.38 2003/09/04 12:27:27 fanf2 Exp $&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# $PREFIX is the directory where the uvscan binary is (NOT a symlink to&lt;br /&gt;
# the binary), which is where it looks for its dat files. You may run&lt;br /&gt;
# uvscan via a symlink to this place (e.g. from /usr/local/bin/uvscan)&lt;br /&gt;
# and it will still look for the dat files here. If uvscan&amp;#039;s library&lt;br /&gt;
# dependencies can be found in a standard place (e.g. /usr/local/lib)&lt;br /&gt;
# then you don&amp;#039;t need a wrapper script to set LD_LIBRARY_PATH before&lt;br /&gt;
# running it.&lt;br /&gt;
#&lt;br /&gt;
# The dat files are installed in a subdirectory of $DATDIR named&lt;br /&gt;
# according to their version number, with symlinks from $PREFIX into&lt;br /&gt;
# the subdirectory via a current link. The current link is updated&lt;br /&gt;
# without locking on the assumption that this is sufficiently unlikely&lt;br /&gt;
# to cause a problem.&lt;br /&gt;
&lt;br /&gt;
# defaults&lt;br /&gt;
OPTS=&amp;quot;&amp;quot;&lt;br /&gt;
PREFIX=/usr/local/uvscan&lt;br /&gt;
FTPDIR=http://download.nai.com/products/datfiles/4.x/nai/&lt;br /&gt;
&lt;br /&gt;
# handle the command line&lt;br /&gt;
usage () {&lt;br /&gt;
        echo &amp;quot;usage: $0 [-dfrtv] [prefix]&amp;quot;&lt;br /&gt;
        echo &amp;quot;  -d      delete old files&amp;quot;&lt;br /&gt;
        echo &amp;quot;  -f      force update&amp;quot;&lt;br /&gt;
        echo &amp;quot;  -r      show README&amp;quot;&lt;br /&gt;
        echo &amp;quot;  -t      timestamp output&amp;quot;&lt;br /&gt;
        echo &amp;quot;  -v      verbose&amp;quot;&lt;br /&gt;
        echo &amp;quot;  prefix  uvscan installation directory&amp;quot;&lt;br /&gt;
        exit 1&lt;br /&gt;
}&lt;br /&gt;
case $# in&lt;br /&gt;
0|1|2)  : ok&lt;br /&gt;
        ;;&lt;br /&gt;
*)      usage&lt;br /&gt;
        ;;&lt;br /&gt;
esac&lt;br /&gt;
for arg in &amp;quot;$@&amp;quot;&lt;br /&gt;
do&lt;br /&gt;
        case $arg in&lt;br /&gt;
        -*)     OPTS=$arg&lt;br /&gt;
                ;;&lt;br /&gt;
        /*)     PREFIX=$arg&lt;br /&gt;
                ;;&lt;br /&gt;
        *)      usage&lt;br /&gt;
                ;;&lt;br /&gt;
        esac&lt;br /&gt;
done&lt;br /&gt;
case $OPTS in&lt;br /&gt;
*[!-dfrtv]*)&lt;br /&gt;
        usage&lt;br /&gt;
esac&lt;br /&gt;
option () {&lt;br /&gt;
        case $OPTS in&lt;br /&gt;
        -*$1*)  eval $2=yes&lt;br /&gt;
                ;;&lt;br /&gt;
        *)      eval $2=no&lt;br /&gt;
                ;;&lt;br /&gt;
        esac&lt;br /&gt;
}&lt;br /&gt;
option d DELETE&lt;br /&gt;
option f FORCE&lt;br /&gt;
option r README&lt;br /&gt;
option t TIME&lt;br /&gt;
option v VERBOSE&lt;br /&gt;
case $FORCE in&lt;br /&gt;
yes)    VERBOSE=yes&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
# set up paths&lt;br /&gt;
PATH=$PREFIX:/usr/local/bin:/usr/bin:/bin&lt;br /&gt;
export PATH&lt;br /&gt;
DATDIR=$PREFIX/datfiles&lt;br /&gt;
SUBDIR=datfiles/current&lt;br /&gt;
LINK=$PREFIX/$SUBDIR&lt;br /&gt;
&lt;br /&gt;
# wrapper functions for echo etc.&lt;br /&gt;
timestamp () {&lt;br /&gt;
        case $TIME in&lt;br /&gt;
        yes)    date &amp;quot;+%Y-%m-%d %H:%M:%S &amp;quot;&lt;br /&gt;
        esac&lt;br /&gt;
}&lt;br /&gt;
say () {&lt;br /&gt;
        case $VERBOSE in&lt;br /&gt;
        yes)    echo &amp;quot;`timestamp`$*&amp;quot;&lt;br /&gt;
        esac&lt;br /&gt;
}&lt;br /&gt;
run () {&lt;br /&gt;
        say &amp;quot;&amp;gt; $*&amp;quot;&lt;br /&gt;
        &amp;quot;$@&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
say Starting $0&lt;br /&gt;
say DELETE=$DELETE&lt;br /&gt;
say FORCE=$FORCE&lt;br /&gt;
say README=$README&lt;br /&gt;
say TIME=$TIME&lt;br /&gt;
say VERBOSE=$VERBOSE&lt;br /&gt;
say PREFIX=$PREFIX&lt;br /&gt;
&lt;br /&gt;
if [ ! -h $LINK ]&lt;br /&gt;
then&lt;br /&gt;
        INIT=yes&lt;br /&gt;
        VERBOSE=yes&lt;br /&gt;
        say Initial setup of $0&lt;br /&gt;
        run mkdir -p $DATDIR&lt;br /&gt;
fi&lt;br /&gt;
run cd $DATDIR&lt;br /&gt;
&lt;br /&gt;
# version number pattern&lt;br /&gt;
MATCH=&amp;quot;[0-9][0-9][0-9][0-9]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# work out latest dat version&lt;br /&gt;
CMD=&amp;quot;wget --passive-ftp $FTPDIR/update.ini 2&amp;gt;update.err&amp;quot;&lt;br /&gt;
say &amp;quot;&amp;gt; $CMD&amp;quot;&lt;br /&gt;
if eval &amp;quot;$CMD&amp;quot;&lt;br /&gt;
then&lt;br /&gt;
        VERSION=`cat update.ini | sed &amp;quot;/^DATVersion=\($MATCH\).$/!d;s//\1/;q&amp;quot;`&lt;br /&gt;
else&lt;br /&gt;
        cat update.err&lt;br /&gt;
        VERSION=UNKNOWN&lt;br /&gt;
fi&lt;br /&gt;
run rm -f update.*&lt;br /&gt;
&lt;br /&gt;
badversion () {&lt;br /&gt;
        VERBOSE=yes&lt;br /&gt;
        say &amp;quot;Failed to get McAfee datfile update from $FTPDIR&amp;quot;&lt;br /&gt;
        say &amp;quot;FTP version number \&amp;quot;$VERSION\&amp;quot; $*&amp;quot;&lt;br /&gt;
        run exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# check the format of the version number&lt;br /&gt;
case $VERSION in&lt;br /&gt;
$MATCH) : ok&lt;br /&gt;
        ;;&lt;br /&gt;
*)      badversion does not match &amp;quot;$MATCH&amp;quot;&lt;br /&gt;
        ;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
# already got it?&lt;br /&gt;
if [ -d $VERSION ]&lt;br /&gt;
then&lt;br /&gt;
        case $FORCE in&lt;br /&gt;
        yes)    say Forced removal of $VERSION&lt;br /&gt;
                run rm -rf $VERSION&lt;br /&gt;
                ;;&lt;br /&gt;
        *)      say Already have $VERSION&lt;br /&gt;
                run exit 0&lt;br /&gt;
                ;;&lt;br /&gt;
        esac&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# work out installed dat version&lt;br /&gt;
PREVIOUS=`(ls -d $MATCH 2&amp;gt;/dev/null || echo 0000) | tail -1`&lt;br /&gt;
&lt;br /&gt;
# check new version is actually newer&lt;br /&gt;
if [ $PREVIOUS -gt $VERSION ]&lt;br /&gt;
then&lt;br /&gt;
        badversion older than installed $PREVIOUS&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
VERBOSE=yes&lt;br /&gt;
&lt;br /&gt;
say Installed dat file is $PREVIOUS&lt;br /&gt;
say Latest dat file is $VERSION&lt;br /&gt;
&lt;br /&gt;
# protect against failure&lt;br /&gt;
fail () {&lt;br /&gt;
        trap EXIT&lt;br /&gt;
        echo &amp;quot;$OUT&amp;quot;&lt;br /&gt;
        say Fetch or test failed -- removing bad McAfee data files&lt;br /&gt;
        run cd $DATDIR&lt;br /&gt;
        run rm -rf $VERSION&lt;br /&gt;
        run exit 1&lt;br /&gt;
}&lt;br /&gt;
trap fail EXIT&lt;br /&gt;
&lt;br /&gt;
# fetch and extract dat files&lt;br /&gt;
TARFILE=dat-$VERSION.tar&lt;br /&gt;
run mkdir $VERSION&lt;br /&gt;
run cd $VERSION&lt;br /&gt;
run wget --passive-ftp --progress=dot:mega $FTPDIR/$TARFILE&lt;br /&gt;
run tar xvf $TARFILE&lt;br /&gt;
&lt;br /&gt;
# verify the contents&lt;br /&gt;
CMD=&amp;quot;uvscan --version --dat .&amp;quot;&lt;br /&gt;
say &amp;quot;&amp;gt; $CMD&amp;quot;&lt;br /&gt;
OUT=`$CMD 2&amp;gt;&amp;amp;1`&lt;br /&gt;
case &amp;quot;$OUT&amp;quot; in&lt;br /&gt;
*&amp;quot;Missing or invalid DAT&amp;quot;* | \&lt;br /&gt;
*&amp;quot;Data file not found&amp;quot;* | \&lt;br /&gt;
*&amp;quot;Removal datafile clean.dat not found&amp;quot;* | \&lt;br /&gt;
*&amp;quot;Unable to remove viruses&amp;quot;* )&lt;br /&gt;
        fail&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
# protection not needed now&lt;br /&gt;
trap &amp;#039;&amp;#039; EXIT&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;$OUT&amp;quot;&lt;br /&gt;
say Update OK&lt;br /&gt;
&lt;br /&gt;
# show information on this update?&lt;br /&gt;
case $README in&lt;br /&gt;
yes)    run sed &amp;#039;s/[[:cntrl:]]//g&lt;br /&gt;
                1,/^====================/d&lt;br /&gt;
                /^====================/,/^NEW VIRUSES DETECTED/d&lt;br /&gt;
                /^UNDERSTANDING VIRUS NAMES/,$d&lt;br /&gt;
                s/^/# /;/@MM/s/$/ &amp;lt;--/&amp;#039; readme.txt&lt;br /&gt;
esac&lt;br /&gt;
# remove some crap&lt;br /&gt;
run rm -f *.diz *.exe *.ini *.lst *.tar *.txt&lt;br /&gt;
&lt;br /&gt;
# do remaining part of initial setup&lt;br /&gt;
case $INIT in&lt;br /&gt;
yes)    for file in *.dat&lt;br /&gt;
        do&lt;br /&gt;
                run rm -f $PREFIX/$file&lt;br /&gt;
                run ln -s $SUBDIR/$file $PREFIX/$file&lt;br /&gt;
        done&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
# update the current version link&lt;br /&gt;
run rm -f $LINK&lt;br /&gt;
run ln -s $VERSION $LINK&lt;br /&gt;
&lt;br /&gt;
# maybe delete old dat files&lt;br /&gt;
case $DELETE in&lt;br /&gt;
yes)    run cd $DATDIR&lt;br /&gt;
        run rm -rf $PREVIOUS&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
say Completed OK&lt;br /&gt;
run logger -p mail.info &amp;quot;McAfee-autoupdate[]: McAfee updated to version $VERSION&amp;quot; 2&amp;gt;/dev/null&lt;br /&gt;
run exit 0&lt;br /&gt;
&lt;br /&gt;
# done&lt;br /&gt;
EOFile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Renderlo eseguibile:&lt;br /&gt;
&lt;br /&gt;
 chmod 755 /usr/local/sbin/mcafee-autoupdate&lt;br /&gt;
&lt;br /&gt;
Provarlo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mcafee-autoupdate -v&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verificare l&amp;#039;aggiornamento:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
uvscan --version&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metterlo in crontab per farlo eseguire ogni ora:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt; /etc/cron.d/mcafee-autoupdate &amp;lt;&amp;lt; EOFile&lt;br /&gt;
0               *     *       *       *       /root/bin/mcafee-autoupdate -d &amp;gt; /dev/null&lt;br /&gt;
EOFile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gabriele.vivinetto</name></author>
	</entry>
</feed>