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

Attachment: with-chroot-1.tar.gz
Description: application/tgz

Attachment: without-chroot-2.tar.gz
Description: application/tgz

Attachment: with-chroot-2.tar.gz
Description: application/tgz

Attachment: 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

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to