On Thursday 10 January 2008 17:52:06 Philipp Marek wrote: > Now I wanted to take a look ... but found nothing. > > Could you *really* attach the files, please ;-?
Argh, so sorry. Ciao, Sheldon.
#!/bin/sh -x
DO_CRYPTSETUP=0
DO_CHROOT=1
LUKS_DEVICE=/dev/sdb1
LUKS_NAME=backups
LUKS_KEY=/etc/keys/$LUKS_NAME.luks
LUKS_MOUNT=/media/backups
ROOT=/dev/vgr1/root
SNAP=/dev/vgr1/rootsnap
SNAP_MOUNT=`mktemp -d /tmp/fsvs.XXXXXX` # Should be in an ignored directory
depth_of () {
path=$1
}
errx () {
echo $* 1>&2
exit 1
}
opened_luks=0
mounted_luks=0
set -e
if [ "$DO_CRYPTSETUP" = "1" ]; then
cryptsetup isLuks $LUKS_DEVICE || errx $LUKS_DEVICE is not a LUKS device
if [ ! -e /dev/mapper/$LUKS_NAME ]; then
cryptsetup --key-file $LUKS_KEY luksOpen $LUKS_DEVICE $LUKS_NAME
opened_luks=1
fi
mkdir -p $LUKS_MOUNT
if ! mountpoint -q $LUKS_MOUNT; then
mount /dev/mapper/$LUKS_NAME $LUKS_MOUNT
mounted_luks=1
fi
fi
lvcreate -s -L 6G -n rootsnap $ROOT
mkdir -p $SNAP_MOUNT
mount $SNAP $SNAP_MOUNT
touch $SNAP_MOUNT/the-only-dir/touched-in-snapshot
cd /
set +e
if [ "$DO_CHROOT" = "1" ]; then
chroot $SNAP_MOUNT fsvs commit -m "Automatic backup"
rsync -avI $SNAP_MOUNT/etc/fsvs/ /etc/fsvs/
rsync -avI $SNAP_MOUNT/var/spool/fsvs/ /var/spool/fsvs/
else
# Take care; this assumes that SNAP_MOUNT/../.. is the root directory
FSVS_CONF=$SNAP_MOUNT/../../etc/fsvs \
FSVS_WAA=$SNAP_MOUNT/../../var/spool/fsvs \
fsvs commit -m "Automatic backup" -o softroot=$SNAP_MOUNT
fi
set -e
# Also back up fsvs config and working copy administrative area
rsync -avI $SNAP_MOUNT/etc/fsvs/ $LUKS_MOUNT/system-fsvs.conf/
rsync -avi $SNAP_MOUNT/var/spool/fsvs/ $LUKS_MOUNT/system-fsvs.waa/
cd /
umount $SNAP_MOUNT
rmdir $SNAP_MOUNT
lvremove --force $SNAP
[ $mounted_luks = 1 ] && umount $LUKS_MOUNT
[ $opened_luks = 1 ] && cryptsetup luksClose $LUKS_NAME
with-chroot-1.tar.gz
Description: application/tgz
without-chroot-2.tar.gz
Description: application/tgz
with-chroot-2.tar.gz
Description: application/tgz
without-chroot-1.tar.gz
Description: application/tgz
#!/bin/sh -ex
TEST_DIR=/root/fsvs-test
rm -r /etc/fsvs/* \
/media/backups/system-fsvs* \
/var/spool/fsvs/* \
/the-only-dir 2>/dev/null || true
cp -a $TEST_DIR/the-only-dir /
umount /snapshot 2>/dev/null || true
lvremove --force /dev/vgr1/rootsnap 2>/dev/null || true
cd /
mkdir -p media/backups
svnadmin create /media/backups/system-fsvs
fsvs urls file:///media/backups/system-fsvs
fsvs ignore load < $TEST_DIR/fsvs-ignores
signature.asc
Description: This is a digitally signed message part.
