What should be backed up?
Karl Vogel
vogelke+unix at pobox.com
Mon Aug 24 00:15:16 UTC 2009
>> On Sat, 22 Aug 2009 15:58:25 +0200,
>> Erik Norgaard <norgaard at locolomo.org> said:
E> Yes, it's easy to miss something that should have been backed up. There
E> is no point in backup of files other than those you modify yourself,
E> unless you plan to create an exact image and recover using dd.
Touching a timestamp file and backing up stuff newer than that works
fine for things you modify, but I frequently copy over source tarballs
and the timestamp method won't work for those. I use MD5 to find what
I've added, changed, or deleted:
root# mkdir /root/toc
root# cd /root/toc
root# date; find / -type f -print | xargs /sbin/md5 -r > orig.md5; date
Tue Mar 24 20:55:20 EDT 2009
Tue Mar 24 20:58:50 EDT 2009
root# wc -l orig.md5
198760 orig.md5
root# df -m /
Filesystem 1M-blocks Used Avail Capacity Mounted on
/dev/aacd0s1a 7931 1882 5414 26% /
root# grep -v /root/toc orig.md5 > x
root# mv x orig.md5
This was from a 7.1 installation. The box hashed 199,000 files (1.8 Gb)
in just over 3 minutes, which was fine with me. Next, I back up /etc in
case I mangle something:
root# mkdir /etc.orig
root# cd /etc
root# find . -print | pax -rwd -pe /etc.orig
After all my tweaks are in place, user accounts installed, etc., I run
the script below to get a new table-of-contents. Then I can compare the
two MD5 files to see exactly what I've added, removed, or modified.
--
Karl Vogel I don't speak for the USAF or my company
Burned so much oil, it was single handedly responsible for the formation
of OPEC.
--a Chevy Vega owner, on "Car Talk's 10 worst cars of the millennium"
===========================================================================
#!/bin/ksh
# Get a table of contents for a configured system.
PATH=/bin:/sbin:/usr/sbin:/usr/bin
export PATH
out=new.md5
top=/root/toc
# First time this is run, {/usr /home /var} are all under /.
# We want to check the same things when we do the comparison run.
fsys=/
root="`df $fsys`"
for dir in /usr /home /var
do
x="`df $dir`"
test "$x" != "$root" && fsys="$fsys $dir"
done
# Get the TOC.
cd $top || exit 1
date; find $fsys -xdev -type f -print0 | xargs -0 md5 -r > $out; date
# How much space are we checking?
echo; df -m $fsys; echo
grep -v $top $out > x.$$
mv x.$$ $out
wc -l $out
exit 0
More information about the freebsd-questions
mailing list