2 # invoked by backup scripts as
3 # remountrocp snap $vardir $device $mountpoint
4 # remounts $mountpoint readonly
5 # copies data to $vardir/snap-mount
6 # remounts $mountpoint readwrite
7 # remountrocp drop $vardir
8 # deletes $vardir/snap-mount
14 . ${CHIARK_BACKUP_SHAREDIR:-/usr/share/chiark-backup}/snap-common
16 #---------- clean up anything
21 lastsettings="$vardir/remountrocp-settings"
22 test ! -f $lastsettings || . $lastsettings
24 if test "$opmode" = drop; then
25 test -z "$last_mountpoint" || mount -o remount,rw $last_mountpoint
27 echo 'remountrocp snap dropped'
31 #---------- create snapshot
33 if [ -z "$lvm_lvsize_opts" ]; then
36 df_out="$(really df -P --block-size=$extsize $mountpoint)"
37 extents2="$(printf "%s" "$df_out" | awk '/^\// {print $3}')"
38 extents2=$(( ($extents2*150+99)/100 + 4 ))
45 cat >$lastsettings.new <<END
46 last_mountpoint=$mountpoint
48 mv -f $lastsettings.new $lastsettings
58 mkfs -t $remountrocp_fs "$lvpath"
60 mount -t $remountrocp_fs $lvm_mount_opts "$lvpath" "$snmnt"
62 mount -o remount,ro "$mountpoint"
63 trap "mount -o remount,rw $mountpoint; exit 12" 0
64 cp -a -- "$mountpoint/." "$snmnt/."
65 mount -o remount,rw "$mountpoint"
67 mount -o remount,ro "$lvpath"
69 echo 'remountrocp snap activated'