btrs-local

This commit is contained in:
2026-02-08 14:29:54 -06:00
parent 5e72e08bd1
commit e764c36f34
4 changed files with 246 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
#!/bin/bash
set -e
# Declarar varables
dir_disk=("/dev/nvme0n1p3" "/dev/bcache0")
dir_temp=("/tmp/root" "/tmp/srv")
dir_create="/tmp/{root,srv}"
name_snapshot=$(date +"%m%d%Y")
# Crear ruta
mkdir -p "$dir_create"
#Montar rutas
for i in "${!dir_disk[@]}"; do
disk_origen="${dir_disk[$i]}"
dir_backup="${dir_temp[$i]}"
dir_snapshot="$dir_backup/snapshot/daily"
#Montar rutas
mount "$disk_origen" "$dir_backup"
# Verificar que existan rutas, caso contrario crearlas
[ -d "$dir_snapshot" ] || mkdir -p "$dir_snapshot"
# Hacer snapshot
if [ $i -eq 0 ]; then
btrfs subvolume snapshot / "$dir_snapshot/$name_snapshot"
else
btrfs subvolume snapshot /srv "$dir_snapshot/$name_snapshot"
fi
# Desmontar rutas
readarray -t snapshots < <(ls -1 "$dir_snapshot" | sort)
total=${#snapshots[@]}
if (( total <= 3 )); then
echo "Hay $total snapshots, no se elimina nada"
continue
fi
# cuantos borrar
borrar=$(( total - 3 ))
for (( contador=0; contador<borrar; contador++ )); do
echo "Eliminando snapshot: ${snapshots[$contador]}"
btrfs subvolume delete "$dir_snapshot/${snapshots[$contador]}"
done
#Desmontar la ruta
umount "$dir_backup"
mount | grep btrfs | grep "$dir_backup" || echo "Se desmonto $dir_backup"
done