btrs-local
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user