Code:
#/bin/ksh
# get the base real files
find /path/to/realfiles -name '*' -type f | \
while read file
do
wc -c "$file" | read size dummy
echo "`basename $file` $size"
done > realfiles
# get all the shadow files
find / -type ! -name '/path/to/realfiles/*' |\
while read file
do
wc -c "$file" | read size dummy
echo "`basename $file` $size $file"
done > shadowfiles
# create a file badfiles that is a list of all the failures
awk '{
FILENAME=="realfiles" {
key[$1 $2]++
}
FILENAME=="shadowfiles" {
if( !key[$1 $2]) { print $3 }
}
}' realfiles shadowfiles > badfiles
# send email
cat badfiles | /usr/bin/mailx -s 'bad shadow files' somebody@someplace.com