X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-utils.git;a=blobdiff_plain;f=backup%2Fremountrocp;fp=backup%2Fremountrocp;h=5e40cc37cc72976d5a7d827a9830de1f0f296683;hp=0000000000000000000000000000000000000000;hb=b7fed73a8d9509acef0307ce94d59c047653b821;hpb=2ecf9414320f30c767b9ba1c9c343529a0cb9504 diff --git a/backup/remountrocp b/backup/remountrocp new file mode 100755 index 0000000..5e40cc3 --- /dev/null +++ b/backup/remountrocp @@ -0,0 +1,69 @@ +#!/bin/bash +# invoked by backup scripts as +# remountrocp snap $vardir $device $mountpoint +# remounts $mountpoint readonly +# copies data to $vardir/snap-mount +# remounts $mountpoint readwrite +# remountrocp drop $vardir +# deletes $vardir/snap-mount + +set -e +snapkind=remountrocp +: ${lvm_vg:=} +remountrocp_fs=ext2 +. ${CHIARK_BACKUP_SHAREDIR:-/usr/share/chiark-backup}/snap-common + +#---------- clean up anything + +vgroup=$lvm_vg +lvmdropcore + +lastsettings="$vardir/remountrocp-settings" +test ! -f $lastsettings || . $lastsettings + +if test "$opmode" = drop; then + test -z "$last_mountpoint" || mount -o remount,rw $last_mountpoint + rm -f $lastsettings + echo 'remountrocp snap dropped' + exit 0 +fi + +#---------- create snapshot + +if [ -z "$lvm_lvsize_opts" ]; then + lvmextentscore1 + + df_out="$(really df -P --block-size=$extsize $mountpoint)" + extents2="$(printf "%s" "$df_out" | awk '/^\// {print $3}')" + extents2=$(( ($extents2*150+99)/100 + 4 )) + + lvmextentscore2 +fi + +lvmcreatecore1 + +cat >$lastsettings.new <