#!/usr/bin/env bash ## ## This script was generated from template by ansible ## based on: ## https://community.hetzner.com/tutorials/install-and-configure-borgbackup/de ## https://github.com/noplanman/ansible-role-borgbackup ## ## ## Setzten von Umgebungsvariablen ## ## falls nicht der Standard SSH Key verwendet wird können ## Sie hier den Pfad zu Ihrem private Key angeben # export BORG_RSH="ssh -i /home/userXY/.ssh/id_ed25519" ## Damit das Passwort vom Repository nicht eingegeben werden muss ## kann es in der Umgepungsvariable gesetzt werden . /root/backup/.borg_passphrase ## ## Setzten von Variablen ## LOG="/var/log/borg/backup.log" {% for b in borgbackup_servers %} BACKUP_USER="{{ b.user }}" REPOSITORY_DIR="{{ inventory_hostname_short }}" PRUNING="{{ b.pruning }}" ## Hinweis: Für die Verwendung mit einem Backup-Account muss ## 'your-storagebox.de' in 'your-backup.de' geändert werden. REPOSITORY="ssh://{{ b.user }}@{{ b.fqdn }}:{{ b.port }}/./{{ b.home }}{{ b.pool }}/{{ inventory_hostname_short }}" ## ## Ausgabe in Logdatei schreiben ## exec > >(tee -i -a ${LOG}) exec 2>&1 echo "###### Backup gestartet: $(date) ######" ## ## An dieser Stelle können verschiedene Aufgaben vor der ## Übertragung der Dateien ausgeführt werden, wie z.B. ## ## - Liste der installierten Software erstellen ## - Datenbank Dump erstellen ## ## ## Löschen alter Backups ## Da jeder Speicherplatz irgendwann vollläuft, wenn wir immer weiter ## wegspeichern, müssen alte Daten auch mal gelöscht werden. Ist unangenehem, ## muss aber sein. ## echo "Aufräumen alte Backups... ($PRUNING)" /usr/bin/borg prune -v --list $PRUNING $REPOSITORY echo "Done." ## ## Dateien ins Repository übertragen ## Gesichert werden hier beispielsweise die Ordner root, etc, ## var/www und home ## Ausserdem finden Sie hier gleich noch eine Liste Excludes, ## die in kein Backup sollten und somit per default ausgeschlossen ## werden. ## echo "Übertrage Dateien ..." /usr/bin/borg create -v --stats \ $REPOSITORY::'{now:%Y%m%d-%H%M}' \ {% for dir in borgbackup_include %}{{ dir }} {% endfor %} \ --exclude /dev \ --exclude /proc \ --exclude /sys \ --exclude /var/run \ --exclude /run \ --exclude /lost+found \ --exclude /mnt \ --exclude /var/lib/lxcfs echo "###### Backup beendet: $(date) ######" {% endfor %}