#!/bin/bash # Machine dependant variables FTP=/usr/bin/lftp FIND=/usr/bin/find CHOWN=/bin/chown CHMOD=/bin/chmod MKDIR=/bin/mkdir TOUCH=/bin/touch ECHO=/bin/echo # Customizable variables LOCALDIR=/var/ftp/pub/av/vs/updates GROUP=users DPERM=755 FPERM=644 # McAfee variables MHOST=ftp.nai.com #MHOST=ftp.mcafee.com MPATH=CommonUpdater # Runtime variables [ -z "$USER" ] && USER=`/usr/bin/whoami` [ -z "$HOME" ] && HOME=/home/$USER [ -z "$CRONDIR" ] && CRONDIR=$HOME/cron [ -z "$LOCKDIR" ] && LOCKDIR=$CRONDIR/lock LOCKFILE=$LOCKDIR/`basename $0`.lock # Test running environment if [ ! -d $HOME ]; then $ECHO "Nonexistent home directory: $HOME" exit 1 fi if [ ! -x $HOME ]; then $ECHO "Cannot enter home directory: $HOME" exit 1 fi if [ ! -d $CRONDIR ]; then $ECHO "Creating cron directory: $CRONDIR" $MKDIR -p $CRONDIR $CHOWN $USER $CRONDIR $CHMOD 700 $CRONDIR if [ ! -d $CRONDIR ]; then $ECHO "Cannot create cron directory: $CRONDIR" exit 1 fi fi if [ ! -x $CRONDIR ]; then $ECHO "Cannot enter cron directory: $CRONDIR" exit 1 fi if [ ! -d $LOCKDIR ]; then $ECHO "Creating lock directory: $LOCKDIR" $MKDIR -p $LOCKDIR $CHOWN $USER $LOCKDIR $CHMOD 700 $LOCKDIR if [ ! -d $LOCKDIR ]; then $ECHO "Cannot create lock directory: $LOCKDIR" exit 1 fi fi if [ ! -x $LOCKDIR ]; then $ECHO "Cannot enter lock directory: $LOCKDIR" exit 1 fi if [ ! -w $LOCKDIR ]; then $ECHO "Cannot write to lock directory: $LOCKDIR" exit 1 fi if [ ! -d $LOCALDIR ]; then $ECHO "Creating target directory: $LOCALDIR" $MKDIR -p $LOCALDIR $CHOWN $USER:$GROUP $LOCALDIR $CHMOD $DPERM $LOCALDIR if [ ! -d $LOCALDIR ]; then $ECHO "Cannot create target directory: $LOCALDIR" exit 1 fi fi if [ ! -w $LOCALDIR ]; then $ECHO "Nonwritable target directory: $LOCALDIR" exit 1 fi cd $LOCALDIR if [ $? != 0 ]; then $ECHO "Cannot change to target directory: $LOCALDIR" exit 1 fi # Set lock so that only one of these runs at a time [ -f $LOCKFILE ] && $ECHO $LOCKFILE exists && exit 0 trap "{ rm -f $LOCKFILE; exit 255; }" 2 trap "{ rm -f $LOCKFILE; exit 255; }" 9 trap "{ rm -f $LOCKFILE; exit 255; }" 15 trap "{ rm -f $LOCKFILE; exit 0; }" EXIT $TOUCH $LOCKFILE || ( $ECHO Cannot touch $LOCKFILE ; exit 1 ) $ECHO '=== Starting McAfee Viruscan AntiVirus Definition Download ===' $FTP -c "mirror ftp://$MHOST/$MPATH/ $LOCALDIR" $FIND $LOCALDIR -mount -type d -exec $CHMOD $DPERM \{\} \; $FIND $LOCALDIR -mount -type f -exec $CHMOD $FPERM \{\} \; $FIND $LOCALDIR -mount -exec $CHOWN -R $USER:$GROUP \{\} \; $ECHO '=== Ending McAfee Viruscan AntiVirus Definition Download ===' $CRONDIR/mvs-update-notify.pl