File: lvm

package info (click to toggle)
chiark-utils 8.0.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,084 kB
  • sloc: ansic: 4,640; perl: 4,281; sh: 671; python: 465; makefile: 286; tcl: 228
file content (50 lines) | stat: -rwxr-xr-x 1,032 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash
# invoked by backup scripts as
#    lvm snap $vardir $device $mountpoint
#		creates and mounts on $vardir/snap-mount
#		creates $vardir/snap-device -> device
#    lvm drop $vardir

set -e
snapkind=lvm
. ${CHIARK_BACKUP_SHAREDIR:-/usr/share/chiark-backup}/snap-common

#---------- clean up anything

lvmdropcore

if test "$opmode" = drop; then
	echo 'lvm snap dropped'
	exit 0
fi

#---------- create snapshot

fstype="$(mount | sed -n \
 "s,^$device on $mountpoint type \([a-z0-9][a-z0-9]*\) .*,-t \1 ,p")"

lvmunmapperdevice
lvmdevice2vgroup

if [ -z "$lvm_lvsize_opts" ]; then
	lvmextentscore1

	lvdisplay_out="$(really lvdisplay -c "$device")"
	extents2="$(printf "%s" "$lvdisplay_out" | awk -F: '{print $8}')"
	extents2=$(( $extents2 + ($extents2+9)/10 - 1 ))

	lvmextentscore2
fi

lvmcreatecore1

lvcreate -s \
	$lvm_lvtools_opts \
	$lvm_lvsize_opts \
	-n $lvm_lv \
	$lvm_lvcreate_opts "$device" $lvm_lvcreate_args

mkdir -- "$snmnt"
mount -v -r $fstype $lvm_mount_opts "$lvpath" "$snmnt"

echo 'lvm snap activated'