Update script

This commit is contained in:
albert 2025-01-16 09:00:58 -08:00
parent e2eaf98653
commit e86c3276ae
Signed by: albert
GPG key ID: 3895DD267CA11BA9

View file

@ -229,7 +229,7 @@ verify_snapshot() {
# Function to verify remote connectivity
verify_remote() {
if ! ssh -i /run/secrets/btrfs-backup/ssh_key -q "$REMOTE_HOST" "exit"; then
if ! ssh -i /run/secrets/btrfs-backups/ssh_key -q "$REMOTE_HOST" "exit"; then
send_notification "Backup Failed" "Cannot connect to remote host from $HOSTNME" 8
log "ERROR: Cannot connect to remote host"
exit 1
@ -238,7 +238,7 @@ verify_remote() {
# Function to get remote snapshots
get_remote_snapshots() {
ssh -i /run/secrets/btrfs-backup/ssh_key "$REMOTE_HOST" "find '$BASE_DEST_PATH' -maxdepth 1 -type d -name '[0-9]*' | sort -n"
ssh -i /run/secrets/btrfs-backups/ssh_key "$REMOTE_HOST" "find '$BASE_DEST_PATH' -maxdepth 1 -type d -name '[0-9]*' | sort -n"
}
# Function to get local backup snapshots
@ -260,13 +260,13 @@ cleanup_snapshots() {
local snapshot="${local_snapshots[$i]}"
# Delete remote snapshot first
if ssh -i /run/secrets/btrfs-backup/ssh_key "$REMOTE_HOST" "[ -d '$BASE_DEST_PATH/$snapshot' ]"; then
if ssh -i /run/secrets/btrfs-backups/ssh_key "$REMOTE_HOST" "[ -d '$BASE_DEST_PATH/$snapshot' ]"; then
log "Deleting remote snapshot: $snapshot"
if ! ssh -i /run/secrets/btrfs-backup/ssh_key "$REMOTE_HOST" "btrfs subvolume delete '$BASE_DEST_PATH/$snapshot/snapshot'"; then
if ! ssh -i /run/secrets/btrfs-backups/ssh_key "$REMOTE_HOST" "btrfs subvolume delete '$BASE_DEST_PATH/$snapshot/snapshot'"; then
send_notification "Backup Warning" "Failed to delete remote snapshot $snapshot on $HOSTNME" 6
log "WARNING - Failed to delete remote snapshot $snapshot"
fi
if ! ssh -i /run/secrets/btrfs-backup/ssh_key "$REMOTE_HOST" "rm -rf '$BASE_DEST_PATH/$snapshot'"; then
if ! ssh -i /run/secrets/btrfs-backups/ssh_key "$REMOTE_HOST" "rm -rf '$BASE_DEST_PATH/$snapshot'"; then
send_notification "Backup Warning" "Failed to cleanup remote snapshot directory $snapshot on $HOSTNME" 6
log "WARNING - Failed to cleanup remote snapshot directory $snapshot"
fi
@ -297,7 +297,7 @@ if [ -n "$LAST_TRANSFERRED" ]; then
fi
# Create destination directory if it doesn't exist
ssh -i /run/secrets/btrfs-backup/ssh_key "$REMOTE_HOST" "mkdir -p '$DEST_PATH'"
ssh -i /run/secrets/btrfs-backups/ssh_key "$REMOTE_HOST" "mkdir -p '$DEST_PATH'"
# Perform the transfer
if [ -z "$LAST_TRANSFERRED" ]; then
@ -305,7 +305,7 @@ if [ -z "$LAST_TRANSFERRED" ]; then
log "Performing full send of snapshot $NEW_SNAPSHOT"
sudo btrfs send "$SNAPSHOT_PATH/$NEW_SNAPSHOT/snapshot" | \
pv --bytes | \
ssh -i /run/secrets/btrfs-backup/ssh_key "$REMOTE_HOST" "btrfs receive '$DEST_PATH'" && {
ssh -i /run/secrets/btrfs-backups/ssh_key "$REMOTE_HOST" "btrfs receive '$DEST_PATH'" && {
echo "$NEW_SNAPSHOT" | sudo tee "$STATE_FILE"
log "Full send completed successfully"
} || {
@ -320,7 +320,7 @@ else
sudo btrfs send -p "$SNAPSHOT_PATH/$LAST_TRANSFERRED/snapshot" \
"$SNAPSHOT_PATH/$NEW_SNAPSHOT/snapshot" | \
pv --bytes | \
ssh -i /run/secrets/btrfs-backup/ssh_key "$REMOTE_HOST" "btrfs receive '$DEST_PATH'" && {
ssh -i /run/secrets/btrfs-backups/ssh_key "$REMOTE_HOST" "btrfs receive '$DEST_PATH'" && {
echo "$NEW_SNAPSHOT" | sudo tee "$STATE_FILE"
log "Incremental send completed successfully"
} || {
@ -353,7 +353,7 @@ if [ -n "$LAST_TRANSFERRED" ]; then
fi
# Final verification
if ! ssh -i /run/secrets/btrfs-backup/ssh_key "$REMOTE_HOST" "btrfs subvolume show '$DEST_PATH/snapshot'" &>/dev/null; then
if ! ssh -i /run/secrets/btrfs-backups/ssh_key "$REMOTE_HOST" "btrfs subvolume show '$DEST_PATH/snapshot'" &>/dev/null; then
send_notification "Backup Failed" "Final verification failed for $SNAPPER_CONFIG on $HOSTNME" 8
log "WARNING - Final verification failed"
exit 1