[15926] | 1 | #!/usr/bin/env bash |
---|
| 2 | |
---|
| 3 | ## |
---|
| 4 | ## This script was generated from template by ansible |
---|
| 5 | ## based on: |
---|
| 6 | ## https://community.hetzner.com/tutorials/install-and-configure-borgbackup/de |
---|
| 7 | ## https://github.com/noplanman/ansible-role-borgbackup |
---|
| 8 | ## |
---|
| 9 | |
---|
| 10 | ## |
---|
| 11 | ## Setzten von Umgebungsvariablen |
---|
| 12 | ## |
---|
| 13 | |
---|
| 14 | ## falls nicht der Standard SSH Key verwendet wird können |
---|
| 15 | ## Sie hier den Pfad zu Ihrem private Key angeben |
---|
| 16 | # export BORG_RSH="ssh -i /home/userXY/.ssh/id_ed25519" |
---|
| 17 | |
---|
| 18 | ## Damit das Passwort vom Repository nicht eingegeben werden muss |
---|
| 19 | ## kann es in der Umgepungsvariable gesetzt werden |
---|
| 20 | . /root/backup/.borg_passphrase |
---|
| 21 | |
---|
| 22 | ## |
---|
| 23 | ## Setzten von Variablen |
---|
| 24 | ## |
---|
| 25 | |
---|
| 26 | LOG="/var/log/borg/backup.log" |
---|
| 27 | |
---|
| 28 | {% for b in borgbackup_servers %} |
---|
| 29 | |
---|
| 30 | BACKUP_USER="{{ b.user }}" |
---|
| 31 | REPOSITORY_DIR="{{ inventory_hostname_short }}" |
---|
| 32 | |
---|
| 33 | ## Hinweis: Für die Verwendung mit einem Backup-Account muss |
---|
| 34 | ## 'your-storagebox.de' in 'your-backup.de' geändert werden. |
---|
| 35 | |
---|
| 36 | REPOSITORY="ssh://{{ b.user }}@{{ b.fqdn }}:{{ b.port }}/./{{ b.home }}{{ b.pool }}/{{ inventory_hostname_short }}" |
---|
| 37 | |
---|
| 38 | ## |
---|
| 39 | ## Ausgabe in Logdatei schreiben |
---|
| 40 | ## |
---|
| 41 | |
---|
| 42 | exec > >(tee -i -a ${LOG}) |
---|
| 43 | exec 2>&1 |
---|
| 44 | |
---|
| 45 | echo "###### Backup gestartet: $(date) ######" |
---|
| 46 | |
---|
| 47 | ## |
---|
| 48 | ## An dieser Stelle können verschiedene Aufgaben vor der |
---|
| 49 | ## Übertragung der Dateien ausgeführt werden, wie z.B. |
---|
| 50 | ## |
---|
| 51 | ## - Liste der installierten Software erstellen |
---|
| 52 | ## - Datenbank Dump erstellen |
---|
| 53 | ## |
---|
| 54 | |
---|
| 55 | ## |
---|
| 56 | ## Dateien ins Repository übertragen |
---|
| 57 | ## Gesichert werden hier beispielsweise die Ordner root, etc, |
---|
| 58 | ## var/www und home |
---|
| 59 | ## Ausserdem finden Sie hier gleich noch eine Liste Excludes, |
---|
| 60 | ## die in kein Backup sollten und somit per default ausgeschlossen |
---|
| 61 | ## werden. |
---|
| 62 | ## |
---|
| 63 | |
---|
| 64 | echo "Übertrage Dateien ..." |
---|
| 65 | /usr/bin/borg create -v --stats \ |
---|
| 66 | $REPOSITORY::'{now:%Y-%m-%d_%H:%M}' \ |
---|
| 67 | {% for dir in borgbackup_include %}{{ dir }} {% endfor %} \ |
---|
| 68 | --exclude /dev \ |
---|
| 69 | --exclude /proc \ |
---|
| 70 | --exclude /sys \ |
---|
| 71 | --exclude /var/run \ |
---|
| 72 | --exclude /run \ |
---|
| 73 | --exclude /lost+found \ |
---|
| 74 | --exclude /mnt \ |
---|
| 75 | --exclude /var/lib/lxcfs |
---|
| 76 | |
---|
| 77 | echo "###### Backup beendet: $(date) ######" |
---|
| 78 | |
---|
| 79 | {% endfor %} |
---|