commit d7f59d92a6eab2a96bbb8063f4a74c280f047f7d Author: Christian Date: Mon Apr 27 20:14:20 2026 +0200 initial borg skripte diff --git a/borg.env b/borg.env new file mode 100644 index 0000000..5236600 --- /dev/null +++ b/borg.env @@ -0,0 +1,8 @@ +# REPO_PATH="ssh://borg@srv1.maierch.de/srv/borg/backups/srv4" +# SSH_PORT=22 +# REPO_PATH="ssh://borg@rpi4.maierch.de/lager/borg/backups/srv1" +# die beiden Variablen werden von borg direkt erkannt, es reicht z.B. borg list +export BORG_PASSPHRASE='' +export BORG_RSH="ssh -i /root/.ssh/id_borg_ecdsa_p384 -p 22" +export BORG_REPO="ssh://borg@rpi4.maierch.de/lager/borg/backups/srv1" + diff --git a/borgbackup.sh b/borgbackup.sh new file mode 100755 index 0000000..133f6cc --- /dev/null +++ b/borgbackup.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# Skript erzeugt backup +. /root/bin/borg.env # lies REPO_PATH aus env Datei +# borg create --stats --progress --rsh "ssh -i /root/.ssh/id_borg_ecdsa_p384 -p $SSH_PORT" ${REPO_PATH}::'{now:%Y-%m-%d_%H-%M}' /etc /root/ /home /opt /var/cache /var/log +borg create --stats --progress ::'{now:%Y-%m-%d_%H-%M}' /etc /root/ /home /opt /var/cache /var/log diff --git a/borglist.sh b/borglist.sh new file mode 100755 index 0000000..408eecf --- /dev/null +++ b/borglist.sh @@ -0,0 +1,3 @@ +. ./borg.env # lies REPO_PATH aus env Datei +# borg list --rsh "ssh -i /root/.ssh/id_borg_ecdsa_p384 -p $SSH_PORT" $REPO_PATH +borg list diff --git a/borgprune.sh b/borgprune.sh new file mode 100755 index 0000000..e2e73e6 --- /dev/null +++ b/borgprune.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# Skript erzeugt backup +. /root/bin/borg.env # lies REPO_PATH aus env Datei +# borg prune -v --list --keep-daily=7 --keep-weekly=4 --keep-monthly=6 --rsh "ssh -i /root/.ssh/id_borg_ecdsa_p384 -p $SSH_PORT" ${REPO_PATH} +# borg compact -v --rsh "ssh -i /root/.ssh/id_borg_ecdsa_p384 -p $SSH_PORT" ${REPO_PATH} +borg prune -v --list --keep-daily=7 --keep-weekly=4 --keep-monthly=6 +borg compact -v diff --git a/borgsearch.sh b/borgsearch.sh new file mode 100755 index 0000000..46e8375 --- /dev/null +++ b/borgsearch.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +# Prüfe, ob zwei Argumente übergeben wurden +if [ "$#" -ne 2 ]; then + echo "Usage: $0 " + echo "Example: $0 2026_... 'nginx.conf'" + exit 1 +fi + +. ./borg.env # lies REPO_PATH aus env Datei +BACKUP_NAME="$1" +SEARCH_PATTERN="$2" + +# Suche nach dem Suchmuster im Backup +echo "Suche nach '$SEARCH_PATTERN' in Backup '$BACKUP_NAME':" +echo "--------------------------------------------------" + +borg list \ + --format="{mode} {user}:{group} {size:8} {mtime} {path}{extra} #" \ + "::$BACKUP_NAME" | tr '#' '\n' | tee /tmp/borglist | grep -E "$SEARCH_PATTERN" +echo "--------------------------------------------------" +echo "Ergebnis in /tmp/borglist Restore mit folgendem Kommando" +echo "cd /tmp; borg extract --rsh \"ssh -i /root/.ssh/id_borg_ecdsa_p384 -p 22\" ssh://borg@rpi4.maierch.de/srv/borg/backups/srv3::$BACKUP_NAME " +echo "oder neu" +echo ". /root/bin/borg.env; cd /tmp; borg extract ::$BACKUP_NAME " diff --git a/borgsize.sh b/borgsize.sh new file mode 100755 index 0000000..cc1c064 --- /dev/null +++ b/borgsize.sh @@ -0,0 +1,3 @@ +. ./borg.env # lies REPO_PATH aus env Datei +# borg list --rsh "ssh -i /root/.ssh/id_borg_ecdsa_p384 -p $SSH_PORT" $REPO_PATH +borg info