#!/bin/bash # Setze Backup-Parameter REPO="ssh://stefan@172.25.28.34:22/srv/usbplatte/nauheim1vps" clear # Frage die Passphrase einmal ab PASSPHRASE=$(whiptail --passwordbox "Bitte gib die Passphrase für das Borgbackup-Repository ein:" 8 40 --title "Borg Backup" 3>&1 1>&2 2>&3) export BORG_PASSPHRASE="$PASSPHRASE" # Funktion, um Informationen in einer scrollbaren Anzeige auszugeben function show_repo_info() { borg info "$REPO" > /tmp/repo_info.txt 2>&1 dialog --title "Repository-Informationen" --backtitle "Borg Backup" --scrollbar --textbox /tmp/repo_info.txt 25 160 rm /tmp/repo_info.txt } function list_archives() { borg list "$REPO" > /tmp/archive_list.txt 2>&1 dialog --title "Verfügbare Archive" --backtitle "Borg Backup" --scrollbar --textbox /tmp/archive_list.txt 25 160 rm /tmp/archive_list.txt } function show_archive_details() { # Liste der Archive abrufen und formatieren ARCHIVES=$(borg list "$REPO" | awk '{print $1}') if [ -z "$ARCHIVES" ]; then whiptail --msgbox "Keine Archive gefunden!" 8 40 --title "Fehler" return fi # Konvertiere die Liste in das Whiptail-Menüformat OPTIONS=() while read -r line; do OPTIONS+=("$line" " ") done <<< "$ARCHIVES" ARCHIVE=$(whiptail --title "Archiv auswählen" --menu "Wähle ein Archiv aus" 20 60 10 "${OPTIONS[@]}" 3>&1 1>&2 2>&3) if [ -n "$ARCHIVE" ]; then borg info "$REPO::$ARCHIVE" > /tmp/archive_info.txt 2>&1 dialog --title "Details zu Archiv $ARCHIVE" --backtitle "Borg Backup" --scrollbar --textbox /tmp/archive_info.txt 25 80 rm /tmp/archive_info.txt fi } # Hauptmenü mit Whiptail while true; do OPTION=$(whiptail --title "Borg Backup Menü" --menu "Wähle eine Option" 15 50 4 \ "1" "Repository-Informationen anzeigen" \ "2" "Liste aller Archive anzeigen" \ "3" "Details zu einem bestimmten Archiv anzeigen" \ "4" "Beenden" 3>&1 1>&2 2>&3) case $OPTION in 1) show_repo_info ;; 2) list_archives ;; 3) show_archive_details ;; 4) clear whiptail --msgbox "Beende das Skript." 8 40 --title "Borg Backup" exit 0 ;; esac done