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 | PRUNING="{{ b.pruning }}" |
---|
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 | ## |
---|
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 | ## |
---|
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 \ |
---|
79 | $REPOSITORY::'{now:%Y%m%d-%H%M}' \ |
---|
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 %} |
---|