#!/bin/bash
# copies all files from SOURCE to DEST, but only if:
# they differ (binary) or doesn't exist.
# for testing include '-maxdepth 1' as a parameter in find

# -------- CONFIGURATION ----------------------------------------------
SOURCEDIR=./localhost
DESTDIR=./destination
LOGFILE=log.txt
# ------- END OF CONFIGURATION ----------------------------------------


IFS='|'
echo '--------------- Start: ' $(date) ' ---------------' >> $LOGFILE
for FNAME in $( find $SOURCEDIR -printf '%p|' );
	do 
		# first: create non existing folders:
		if (test -d $FNAME) && !(test -d $DESTDIR/$FNAME);then mkdir -p $DESTDIR/$FNAME; fi;

		if (test -f $FNAME;);then 
			if !(cmp -s $FNAME $DESTDIR/$FNAME); then 
				cp $FNAME $DESTDIR/$FNAME;
				echo 'Copied: ' $FNAME >> $LOGFILE
			fi;
# testing:
#			if !(cmp -s $FNAME $DESTDIR/$FNAME); then echo differ $FNAME;
#			else echo no difference $FNAME;
#			fi;


		fi;
	done

