#!/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+102399)/102400 + 4 )) lvmextentscore2 fi lvmcreatecore1 cat >$lastsettings.new <&2 'cannot remount readonly' exit 1 fi sleep 1 done trap "set +e; mount -o remount,rw $mountpoint; exit 12" 0 echo ' source remounted readonly, copying...' cp -ax -- "$mountpoint/." "$snmnt/." echo ' finalising...' mount -o remount,rw "$mountpoint" trap '' 0 mount -o remount,ro "$lvpath" echo 'remountrocp snap activated'