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 %} |
---|