local/bin/btrfs-snap-all: Init.

master
Pierre Neidhardt 2019-10-03 15:55:57 +02:00
parent 5739f9cb9d
commit 3261b72d7a
1 changed files with 41 additions and 0 deletions

41
.local/bin/btrfs-snap-all Executable file
View File

@ -0,0 +1,41 @@
#!/bin/sh
usage () {
cat <<EOF>&2
Usage: ${0##*/}
Snapshot all Btrfs subvolumes older than 1 day to a read-only '.snapshots/SUBVOLUME/DATE'.
EOF
}
if [ $# -ne 0 ]; then
usage
exit 1
fi
while IFS= read -r fs; do
for subvol in private public; do
last=$(ls -1 .snapshots/"$subvol" | tail -1 | sed 's/_/ /')
if [ -z "$last" ]; then
continue
fi
last_date=$(date --date="$last" +%s)
now=$(date +%s)
if [ $(($now - $last_date)) -gt 86400 ]; then
choice=N
echo -n "==> Snapshot '$fs/${subvol}'? (y/N) "
read -r choice
case "$choice" in
Y|y)
btrfs-snap "$fs/$subvol" ;;
esac
unset choice
fi
unset now
unset last_date
unset last
done
done <<EOF
$(findmnt -t btrfs -n --output TARGET)
EOF