#!/bin/bash

# - bof - #



# -  - #
# - Documentation - #
https://linuxhint.com/use-btrfs-snapshots/
https://askubuntu.com/questions/1298465/create-btrfs-snapshots-of-home-when-its-not-set-up-as-a-subvolume



# :a
# -  - #
# - Create btrfs snapshots - #
#sudo mkdir -vp /Data/.DataSnapshots;
sudo btrfs subvolume list /Data;
sudo btrfs subvolume snapshot /Data /Data/.DataSnapshots/Data_2022-01-14;
sudo btrfs subvolume snapshot /Data /Data/.DataSnapshots/Data_$(date +%Y-%m-%d_%H-%m-%S);
sudo btrfs subvolume show /Data/.DataSnapshots/Data_2022-02-09_16-02-18;
tree -a /Data;

# -  - #
# - Create /home btrfs snapshots - #
sudo mkdir -vp /home/.snapshots;
sudo btrfs subvolume snapshot /home /home/.snapshots/Data_$(date +%Y-%m-%d_%H-%m-%S);
sudo btrfs subvolume list /home;

# :b
# -  - #
# - Recover a folder content - #
cp -vr /Data/.snapshots/Data_2022-01-14/Documents/Pictures/* /Data/Documents/Pictures;

# :c
# -  - #
# - Recover complete snapshot - #
rsync -avz /Data/.snapshots/Data_2022-01-14/ /Data;

# - Don't use - #
# - Deletes the snapshot as well - #
#rsync -avz --delete /Data/.snapshots/Data_2022-01-14/ /Data;

# :d
# -  - #
# - Update snapshot - #
sudo cp -vr /Data/Documents/Pictures/Backgrounds_3.txt /Data/.snapshots/Data_2022-01-14/Documents/Pictures/;

# :e
# -  - #
# - Create a "ReadOnly" snapshot - #
sudo btrfs subvolume snapshot -r /Data /Data/.snapshots/Data_2022-01-14_2;

sudo btrfs subvolume list /Data;
sudo btrfs subvolume show /Data;
sudo btrfs subvolume show /Data/.snapshots/Data_2022-01-14;
sudo btrfs subvolume show /Data/.snapshots/Data_2022-01-14_2;

# :f
# -  - #
# - Delete a snapshot - #
sudo btrfs subvolume delete /Data/.snapshots/Data_2022-01-14;
sudo btrfs subvolume list /Data;
tree -a /Data;



# :z
# -  - #
# - Manage btrfs subvolumes - #
sudo btrfs subvolume list /;
sudo btrfs subvolume list / -apt;
sudo btrfs subvolume list .;
sudo btrfs subvolume list /Data;

sudo btrfs subvolume show /;
sudo btrfs subvolume show /home;
sudo btrfs filesystem show | awk '/ path /{print $NF}'
sudo btrfs filesystem show;
sudo btrfs filesystem show /;
sudo btrfs filesystem show | awk '/ path /{print $NF}';
sudo btrfs filesystem show | grep devid;

sudo btrfs filesystem label /home;
sudo btrfs filesystem df /;
sudo btrfs filesystem df /root;
sudo btrfs filesystem df /home;
sudo btrfs filesystem df /Data;
btrfs device usage /;

sudo systemctl list-units --type=mount --all;

df -h /;
df -h /Data;

# -  - #
# - Show mounted subvolumes - #
df -ht btrfs;
findmnt -nt btrfs;
findmnt -nt btrfs;
findmnt -nt btrfs --output TARGET;
mount | grep btrfs;
sudo btrfs check --force /dev/vda4;

sudo btrfs filesystem label
sudo btrfs subvolume snapshot / /snap/root



https://www.christitus.com/btrfs-guide

Create Snapshot

sudo btrfs subvolume snapshop /home /home/.snapshots/2020-01-13

Using this you can revert the snapshop by simply editing the /etc/fstab and changing the subvol=2020-01-13 or the corresponding subvolid you get from sudo btrfs subv list /home


Restore Snapshot
Restore Snapshop after reboot and successful rollback

sudo btrfs subvolume delete /home
sudo btrfs subvolume snapshot /home/.snapshots/2020-01-13 /home



# - eof - #
