source: main/waeup-ansible/templates/borg-backup.sh.j2 @ 16300

Last change on this file since 16300 was 15935, checked in by uli, 5 years ago

In backup script also prune old backups.

This is neccessary to create space for new backups.

File size: 2.5 KB
Line 
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
26LOG="/var/log/borg/backup.log"
27
28{% for b in borgbackup_servers %}
29
30BACKUP_USER="{{ b.user  }}"
31REPOSITORY_DIR="{{ inventory_hostname_short }}"
32PRUNING="{{ 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
37REPOSITORY="ssh://{{ b.user }}@{{ b.fqdn }}:{{ b.port }}/./{{ b.home }}{{ b.pool }}/{{ inventory_hostname_short }}"
38
39##
40## Ausgabe in Logdatei schreiben
41##
42
43exec > >(tee -i -a ${LOG})
44exec 2>&1
45
46echo "###### 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
63echo "Aufräumen alte Backups... ($PRUNING)"
64/usr/bin/borg prune -v --list $PRUNING $REPOSITORY
65echo "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
77echo "Ü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
90echo "###### Backup beendet: $(date) ######"
91
92{% endfor %}
Note: See TracBrowser for help on using the repository browser.