#!/bin/bash . /etc/disco/client.cfg SCRIPTROOT=$(dirname $(readlink -f $0)) if [ "$NOOP" != "" ]; then DISCOROOT=/var/disco/testfs/noop else DISCOROOT=/var/disco/testfs/real fi cd $DISCOROOT rsync --checksum --times --perms --owner --group -ani ./scratchfs/ ./rootfs/ |\ grep -v ".unionfs.*/$" |\ sed s/"\.\/scratchfs"/""/ |\ sed s/"\.unionfs\/"/""/ |\ grep -v "./$" |\ sed s/"^[<>ch\.*]d"/"File: directory: "/ |\ sed s/"^[<>ch\.*]f"/"File: file: "/ |\ sed s/"^[<>ch\.*]L"/"File: symlink: "/ |\ sed s/"^[<>ch\.*]D"/"File: device: "/ |\ sed s/"^[<>ch\.*]S"/"File: special: "/ |\ sed s/": \([\.cstpoguax+]*\) \(.*\)$"/": \2 : \1"/ |\ sed s/"+++++++++$"/"Created"/ |\ sed s/" [\.cstpoguax]*$"/" Modified"/ |\ sed s/"_HIDDEN~ : Created"/" : Deleted"/ |\ sed s/"^\(.*\)\$"/"info: \1"/g |\ while read LINE do FNAME=$(echo $LINE | cut -d : -f 4 | sed s/"^ *"/""/ | sed s/" *$"/""/) MD5_NEW=$(md5sum ${DISCOROOT}/scratchfs/${FNAME} 2>/dev/null| cut -d " " -f 1) MD5_OLD=$(md5sum /${FNAME} 2>/dev/null| cut -d " " -f 1) PERMS_NEW=$(stat --format "%G:%U %a" ${DISCOROOT}/scratchfs/${FNAME} 2>/dev/null) PERMS_OLD=$(stat --format "%G:%U %a" /${FNAME} 2>/dev/null) if [ ! -d /${FNAME} ] && [ ! -d ${DISCOROOT}/scratchfs/${FNAME} ]; then DIFF=$(echo; diff /${FNAME} ${DISCOROOT}/scratchfs/${FNAME} 2>/dev/null > /tmp/$$.diff ) fi file ${DISCOROOT}/scratchfs/${FNAME} 2>&1 | grep ASCII >/dev/null 2>&1 if [ $? -eq 0 ]; then CONTENT=$(echo "Text"; cat ${DISCOROOT}/scratchfs/${FNAME} | sed s/"^"/"> "/g > /tmp/$$.content) fi echo $LINE |\ sed -e s/"Created$"/"Created : md5=[${MD5_NEW}] perms=[${PERMS_NEW}]"/ |\ sed -e s/"Modified$"/"Modified : md5=[${MD5_OLD} => ${MD5_NEW}] perms=[${PERMS_OLD} => ${PERMS_NEW}]"/ if [ -f /tmp/$$.diff ]; then cat /tmp/$$.diff elif [ -f /tmp/$$.content ]; then cat /tmp/$$.content fi rm -f /tmp/$$.content /tmp/$$.diff 2>/dev/null done rm -f /tmp/$$*