#!/bin/sh # #********************* # variables #********************* # Change TREE to be your local tree area TREE="/mnt/src" # Change MAILLIST to be address of where you want a email record to be sent #MAILLIST="root" MAILLIST="csieh@fnal.gov" # Change ARCHES to include the arches you wish to copy #ARCHES="i386 x86_64 ia64" ARCHES="i386" #********************* VERSION=307 SOURCEHOST="ftp.scientificlinux.org" PRODUCT=scientific SOURCEDIR="linux/$PRODUCT/$VERSION" DESTDIR="$TREE/$PRODUCT/$VERSION" SCRIPT="rsync.$VERSION" LOGFILE="/var/log/rsync.log" MAILFILE="/tmp/$SCRIPT.mailfile" TEMPFILE="/tmp/$SCRIPT" #********************* # Do The Work #********************* rm -f $TEMPFILE for arch in $ARCHES do if [ ! -d $DESTDIR/$arch ] ; then mkdir -p $DESTDIR/$arch if [ $? -eq 0 ] ; then echo "Now about to create directory $DESTDIR/$arch , Verify that you " echo "have set TREE correctly in this script and you have write " echo "permission to create this directory " exit 1 fi fi if [ ! -d $DESTDIR/$arch/sites/example ] ; then mkdir -p $DESTDIR/$arch/sites/example if [ $? -eq 0 ] ; then echo "Now about to create directory $DESTDIR/$arch/sites/example , Verify that you " echo "have set TREE correctly in this script and you have write " echo "permission to create this directory " exit 1 fi fi echo "$DESTDIR/$arch/ ">> $TEMPFILE /usr/bin/rsync $1 -avzl --delete --exclude=sites/ $SOURCEHOST::$SOURCEDIR/$arch/ $DESTDIR/$arch/ >> $TEMPFILE 2>&1 /usr/bin/rsync $1 -avzl --delete $SOURCEHOST::$SOURCEDIR/$arch/sites/example/ $DESTDIR/$arch/sites/example/ >> $TEMPFILE 2>&1 done #********************* # Log It and Mail It if necessary #********************* if [ -s $TEMPFILE ] ; then # Make the mail/log file HOST="$(uname -n)" echo "**************************" > $MAILFILE echo "Rsync changes" >> $MAILFILE echo "Script: $SCRIPT" >> $MAILFILE echo "Source: $SOURCEHOST::$SOURCEDIR Destination: $HOST:$DESTDIR" >> $MAILFILE date >> $MAILFILE echo "**************************" >> $MAILFILE cat $TEMPFILE >> $MAILFILE # Mail it if [ "$1" = "-n" ] ; then /bin/mail -s "TEST RSYNC: $SOURCEHOST::$SOURCEDIR to $DESTDIR" $MAILLIST < $MAILFILE else /bin/mail -s "RSYNC: $SOURCEHOST::$SOURCEDIR to $DESTDIR" $MAILLIST < $MAILFILE fi # Log it cat $MAILFILE >> $LOGFILE fi