Ich verwende Borg-Backup und habe mir für die Automatisierung ein kleines Script aus dem Internet auf meine Befürfnisse angepasst.
Das funktioniert auch alles aber ich möchte eine Optimierung vornehmen und komme da nicht weiter.
Am Ende des Scripts wird immer eine Status-E-Mail mit den Log-Dateien im Anhang gesendet. Da ich mir nicht zu helfen wusste, habe ich den Befehl einfach vollständig an das Ende des Scriptes geschrieben.
Ich hätte aber gerne, dass in dem eigentlichen Script-Befehl nur Variablen stehen und das die entsprechenden Variablen dann weiter oben eingetragen werden.
Meine Frage an Euch:
Könnt Ihr mir bitte helfen, das in dem Script entsprechend umzusetzen?
Ist wahrscheinlich ganz einfach.
Das Script darf übrigens jeder gerne weiter verwenden.
Hier das Script:
Code: Alles auswählen
#!/bin/bash
# Zunaechst werden die Daten mit Rsync vom NAS geholt:
/usr/bin/rsync -aSAXHP -e ssh --delete --exclude=@Recycle --exclude=ihm --log-file=/var/log/rsync/rsync_qnap.log .....
#
/usr/bin/rsync -aSAXHP -e ssh --delete --exclude=@Recycle --exclude=@Recently-Snapshot --log-file=/var/log/rsync/rsync_ihm_qnap.log .....
#
# Danach wird ein Borg-Backup erstellt.
# Skriptvorlage BorgBackup:
# https://wiki.ubuntuusers.de/BorgBackup/
# https://borgbackup.readthedocs.io/en/stable/
# Hier Pfad zum Sicherungsmedium angeben.
# z.B. zielpfad="/media/peter/HD_Backup"
zielpfad=""
# Hier Namen des Repositorys angeben.
# z.B. repository="borgbackups"
repository=""
# Hier eine Liste mit den zu sichernden Verzeichnissen angeben
# z.B. sicherung="/home/peter/Bilder /home/peter/Videos --exclude *.tmp"
sicherung=""
# Hier den Pfad für die Log-Datei angeben.
# z.B. LOG="/var/log/borg/backup.log"
LOG=""
# Hier die Art der Verschlüsselung angeben
# z.B. verschluesselung="none" "keyfile" "repokey"
verschluesselung=""
# Hier die Art der Kompression angeben
# z.B. kompression="none" "lz4" "zlib" "lzma"
kompression=""
# Hier angeben, ob vor der Ausführung von BorgBackup auf vorhandene Root-Rechte geprüft werden soll
# z.B. rootuser="ja" "nein"
rootuser=""
# Hier angeben nach welchem Schema alte Archive gelöscht werden sollen.
# Die Vorgabe behält alle Sicherungen des aktuellen Tages. Zusätzlich das aktuellste Archiv der
# letzten 7 Sicherungstage, der letzten 5 Wochen sowie der letzten 12 Monate.
pruning="--keep-within=1d --keep-daily=7 --keep-weekly=4 --keep-monthly=12 --keep-yearly=1"
# Hier die Angaben für den E-Mail-Versand angeben.
# Text in der E-Mail:
?????
# Text in der Betreffzeile:
?????
# E-Mail-Adresse des Empfängers:
?????
# Pfad zum Dateianhang 1:
?????
# Pfad zum Dateianhang 2:
?????
# Pfad zum Dateianhang 3:
?????
# AB HIER KEINE VERÄNDERUNGEN MEHR VORNEHMEN!
###################################################################################################
###################################################################################################
# destination path:
repopfad="$zielpfad"/"$repository"
# check for root:
if [ $(id -u) -ne 0 ] && [ "$rootuser" == "ja" ]; then
echo "Sicherung muss als Root-User ausgeführt werden."
exit 1
fi
# Init borg-repo if absent:
if [ ! -d $repopfad ]; then
borg init --encryption=$verschluesselung $repopfad
echo "Borg-Repository erzeugt unter $repopfad"
fi
# write to log-file:
exec > >(tee -i ${LOG})
exec 2>&1
# backup data:
SECONDS=0
echo "Start der Sicherung $(date)."
borg create --compression $kompression --exclude-caches --one-file-system -v --stats --progress \
$repopfad::'{hostname}-{now:%Y-%m-%d-%H%M%S}' $sicherung
echo "Ende der Sicherung $(date). Dauer: $SECONDS Sekunden"
# prune archives:
borg prune -v --list $repopfad --prefix '{hostname}-' $pruning
# send status e-mail:
echo "Mein Text in der E-Mail" | mail -s "Mein Text in der Betreffzeile" benutzer@email.adresse.de -A "/pfad/zur/Log-Datei-1.log" -A "/pfad/zur/Log-Datei-2.log" -A "/pfad/zur/Log-Datei-3.log"