aboutsummaryrefslogtreecommitdiff
path: root/snap
diff options
context:
space:
mode:
authorMitch Riedstra <mitch@riedstra.us>2019-10-15 20:56:41 -0400
committerMitch Riedstra <mitch@riedstra.us>2019-10-15 20:56:41 -0400
commiteefbd029b55b2782b0d7b11b4989ce0ca9b256cd (patch)
tree535511fd3154342117d67171e28a312bd30c7f87 /snap
parent5840f413825e053b645a338d71c1916a06094335 (diff)
downloaddotfiles-eefbd029b55b2782b0d7b11b4989ce0ca9b256cd.tar.gz
dotfiles-eefbd029b55b2782b0d7b11b4989ce0ca9b256cd.tar.xz
Massive organization of my dotfiles
Diffstat (limited to 'snap')
-rw-r--r--snap/btrfs.sh23
-rw-r--r--snap/lvm.sh31
2 files changed, 54 insertions, 0 deletions
diff --git a/snap/btrfs.sh b/snap/btrfs.sh
new file mode 100644
index 0000000..cc2e5a9
--- /dev/null
+++ b/snap/btrfs.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+set -x
+set -e
+timestamp() {
+ date +%m.%d.%y_%H.%M.%S
+}
+
+rootfs="glibc"
+snap="${rootfs}-snap"
+
+cd /ROOT
+
+if [ -e "$snap" ] ; then
+ btrfs sub del "$snap"
+fi
+
+if ! [ -e "bak" ] ; then
+ btrfs sub create "bak"
+fi
+
+btrfs sub snap -r "$rootfs" "bak/${rootfs}-$(timestamp)"
+btrfs sub snap "$rootfs" "$snap"
+sed -i.bak -e"s/subvol=${rootfs}/subvol=${snap}/g" "${snap}/etc/fstab"
diff --git a/snap/lvm.sh b/snap/lvm.sh
new file mode 100644
index 0000000..4991495
--- /dev/null
+++ b/snap/lvm.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+set -e
+
+vg="x230"
+lv="root"
+snap_name="${lv}-snap"
+mountpoint="/mnt/snap"
+PERCENT="100"
+
+mount_fs() {
+ _device="$1"; shift
+ _opts="nouuid,rw"
+ _mntpoint="$1"; shift
+ if ! [ -d "$_mntpoint" ] ; then
+ mkdir "$_mntpoint"
+ fi
+ mount -o "$_opts" "$_device" "$_mntpoint"
+}
+
+# If snapshot doesn't exist
+if ! lvm lvs "$vg/$snap_name" >/dev/null 2>&1 ; then
+ lvm lvcreate "$vg/$lv" -s --name "$snap_name" -l "${PERCENT}%ORIGIN"
+ mount_fs "/dev/$vg/$snap_name" "$mountpoint"
+ sed -i.bak -r "s@(/dev/${vg}/${lv})@\1${snap_name}@" \
+ "$mountpoint/etc/fstab"
+ umount "$mountpoint"
+else
+ printf 'Cannot continue snapshot "%s" already exists.\n' \
+ "$vg/$snap_name"
+ exit 1;
+fi