--- smeserver-affa-0.9.0/root/sbin/e-smith/affa.createBackupFileOption2 2008-03-08 18:00:25.000000000 +0100 +++ smeserver-affa-0.9.0/root/sbin/e-smith/affa 2008-03-08 18:00:25.000000000 +0100 @@ -2500,12 +2500,7 @@ $restore_list.="$f "; } close(DIR); - my @cmd=('/bin/tar', '-C', "$job{'RootDir'}/$jobname/$archive/", '-cf - ', $restore_list, - '|', '/usr/bin/pv -i 0.3', "-s $size", - '|', '/bin/gzip', - "> $outfile" - ); - my $status=ExecCmd( @cmd, 0 ); + my $status=system("/usr/lib/affa/create-backup-file.sh $job{'RootDir'} $jobname $archive '$restore_list' $outfile $size"); if( $status!=0 ) { unlink( $outfile ); --- smeserver-affa-0.9.0/root/usr/lib/affa/create-backup-file.sh.createBackupFileOption2 2008-03-08 18:02:00.000000000 +0100 +++ smeserver-affa-0.9.0/root/usr/lib/affa/create-backup-file.sh 2008-03-08 18:01:29.000000000 +0100 @@ -0,0 +1,49 @@ +#!/bin/bash + +# This script is part of the Affa package +# Michael Weinberger 2008 + +export PATH=/bin:/usr/bin +set -o pipefail + +ROOTDIR=$1 +JOB=$2 +ARCHIVE=$3 +RESTORE=$4 +OUTFILE=$5 +BASENAME=`basename $OUTFILE` +SIZE=$6 + +PIPE=/tmp/affa.$$.$(date +%s) +mkfifo $PIPE + +echo "Writing $OUTFILE" +(md5sum < $PIPE & /bin/tar -C $ROOTDIR/$JOB/$ARCHIVE -cf - $RESTORE | /usr/bin/pv -i 0.3 -s $SIZE | /bin/gzip | tee $PIPE > $OUTFILE) > $OUTFILE.md5sum + +STATUS=$? +if [ $STATUS != 0 ] ; then + test -f $OUTFILE && rm -f $OUTFILE + rm -f $OUTFILE.md5sum $PIPE + exit $STATUS +fi + +GSIZE=$(find $OUTFILE -printf "%s") + +CR=$(echo "scale=5; $SIZE/$GSIZE" | bc) +SPACESAVING=$(echo "scale=5; 100-$GSIZE/$SIZE*100" | bc) +printf "Compression Ratio: %.1f (%.1f %%)\n" $CR $SPACESAVING + +echo "Verifying $OUTFILE" +cat $OUTFILE | /usr/bin/pv -i 0.1 -s $GSIZE | md5sum --status -c $OUTFILE.md5sum +STATUS=$? +if [ $STATUS != 0 ] ; then + echo "Verify FAILED" + test -f $OUTFILE && rm -f $OUTFILE + rm -f $OUTFILE.md5sum $PIPE + exit $STATUS +fi + +cat $OUTFILE.md5sum | sed -e s/-/$BASENAME/ > $OUTFILE.md5sum + +rm -f $PIPE +exit 0