summarylogtreecommitdiffstats
path: root/btrfs_create_filesystem_snapshot
diff options
context:
space:
mode:
Diffstat (limited to 'btrfs_create_filesystem_snapshot')
-rw-r--r--btrfs_create_filesystem_snapshot33
1 files changed, 33 insertions, 0 deletions
diff --git a/btrfs_create_filesystem_snapshot b/btrfs_create_filesystem_snapshot
new file mode 100644
index 000000000000..5d9375489af4
--- /dev/null
+++ b/btrfs_create_filesystem_snapshot
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+set -e
+
+mkdir -p /mnt/urbackup_snaps
+
+SNAP_ID=$1
+SNAP_MOUNTPOINT="$2"
+SNAP_NAME="$3"
+SNAP_ORIG_PATH="$4"
+SNAP_DEST=/mnt/urbackup_snaps/$SNAP_ID
+
+TYPE=$(df -T -P | egrep " ${SNAP_MOUNTPOINT}\$" | head -n 1 | tr -s " " | cut -d" " -f2)
+
+if [[ $TYPE == "" ]]
+then
+ if btrfs subvolume list -o "$SNAP_MOUNTPOINT" > /dev/null 2>&1
+ then
+ TYPE="btrfs"
+ fi
+fi
+
+if [[ $TYPE == "btrfs" ]]
+then
+ btrfs subvolume snapshot -r "$SNAP_MOUNTPOINT" "$SNAP_DEST"
+else
+ echo "Cannot create snapshot of file system with type $TYPE"
+ exit 1
+fi
+
+echo "SNAPSHOT=$SNAP_DEST"
+
+exit 0 \ No newline at end of file