[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 }}" |
---|
[15935] | 32 | PRUNING="{{ b.pruning }}" |
---|
[15926] | 33 | |
---|
| 34 | ## Hinweis: Für die Verwendung mit einem Backup-Account muss |
---|
| 35 | ## 'your-storagebox.de' in 'your-backup.de' geändert werden. |
---|
| 36 | |
---|
| 37 | REPOSITORY="ssh://{{ b.user }}@{{ b.fqdn }}:{{ b.port }}/./{{ b.home }}{{ b.pool }}/{{ inventory_hostname_short }}" |
---|
| 38 | |
---|
| 39 | ## |
---|
| 40 | ## Ausgabe in Logdatei schreiben |
---|
| 41 | ## |
---|
| 42 | |
---|
| 43 | exec > >(tee -i -a ${LOG}) |
---|
| 44 | exec 2>&1 |
---|
| 45 | |
---|
| 46 | echo "###### Backup gestartet: $(date) ######" |
---|
| 47 | |
---|
| 48 | ## |
---|
| 49 | ## An dieser Stelle können verschiedene Aufgaben vor der |
---|
| 50 | ## Übertragung der Dateien ausgeführt werden, wie z.B. |
---|
| 51 | ## |
---|
| 52 | ## - Liste der installierten Software erstellen |
---|
| 53 | ## - Datenbank Dump erstellen |
---|
| 54 | ## |
---|
| 55 | |
---|
| 56 | ## |
---|
[15935] | 57 | ## Löschen alter Backups |
---|
| 58 | ## Da jeder Speicherplatz irgendwann vollläuft, wenn wir immer weiter |
---|
| 59 | ## wegspeichern, müssen alte Daten auch mal gelöscht werden. Ist unangenehem, |
---|
| 60 | ## muss aber sein. |
---|
| 61 | ## |
---|
| 62 | |
---|
| 63 | echo "Aufräumen alte Backups... ($PRUNING)" |
---|
| 64 | /usr/bin/borg prune -v --list $PRUNING $REPOSITORY |
---|
| 65 | echo "Done." |
---|
| 66 | |
---|
| 67 | |
---|
| 68 | ## |
---|
[15926] | 69 | ## Dateien ins Repository übertragen |
---|
| 70 | ## Gesichert werden hier beispielsweise die Ordner root, etc, |
---|
| 71 | ## var/www und home |
---|
| 72 | ## Ausserdem finden Sie hier gleich noch eine Liste Excludes, |
---|
| 73 | ## die in kein Backup sollten und somit per default ausgeschlossen |
---|
| 74 | ## werden. |
---|
| 75 | ## |
---|
| 76 | |
---|
| 77 | echo "Übertrage Dateien ..." |
---|
| 78 | /usr/bin/borg create -v --stats \ |
---|
[15935] | 79 | $REPOSITORY::'{now:%Y%m%d-%H%M}' \ |
---|
[15926] | 80 | {% for dir in borgbackup_include %}{{ dir }} {% endfor %} \ |
---|
| 81 | --exclude /dev \ |
---|
| 82 | --exclude /proc \ |
---|
| 83 | --exclude /sys \ |
---|
| 84 | --exclude /var/run \ |
---|
| 85 | --exclude /run \ |
---|
| 86 | --exclude /lost+found \ |
---|
| 87 | --exclude /mnt \ |
---|
| 88 | --exclude /var/lib/lxcfs |
---|
| 89 | |
---|
| 90 | echo "###### Backup beendet: $(date) ######" |
---|
| 91 | |
---|
| 92 | {% endfor %} |
---|