-
Notifications
You must be signed in to change notification settings - Fork 0
/
backup_script.sh
73 lines (66 loc) · 3.19 KB
/
backup_script.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/bin/bash
DATE=$(date +%Y-%m-%d-%H%M%S)
# pfad sollte nicht mit "/" enden!
# Dies ist nur ein Beispiel - bitte an eigene Bedürfnisse anpassen.
# Man muß schreibberechtigt im entsprechenden Verzeichnis sein.
BACKUP_DIR="/root/backup"
# Hier Verzeichnisse auflisten, die gesichert werden sollen.
# Dies ist nur ein Beispiel - bitte an eigene Bedürfnisse anpassen.
# Bei Verzeichnissen, für die der User keine durchgehenden Leserechte hat (z.B. /etc) sind Fehler vorprogrammiert.
# Pfade sollte nicht mit "/" enden!
SOURCE="$HOME/bin /var/www /var/lib/nextcloud /etc /root/bin"
#################################################################################################################
# Soll eine Nextcloudinstanz gesichert werden, dann den Maintenancemode setzen
#sudo -u www-data php -f /var/www/nextcloud/occ maintenance:mode --on
#echo "Der Wartungsmodus wurde gesetzt."
#################################################################################################################
# Zur Sicherung von Websites - Stoppe den Apache Webserver
service apache2 stop
echo "Apache Webserver gestoppt."
#################################################################################################################
# Sollen alte Backups von früheren Backups vorher gelöscht werden, bitte die nächsten Zeilen auskommentieren
#echo "lösche alte Backups"
#if [ -d $BACKUP_DIR ]
#then
# rm -r $BACKUP_DIR
#fi
#################################################################################################################
# Erstelle das Backupverzeichnis, sofern es noch nicht angelegt wurde
echo "Erzeuge Backupverzeichnis."
if [ ! -d $BACKUP_DIR ]
then
mkdir $BACKUP_DIR
fi
#################################################################################################################
# Erstelle das Backup
echo "Archiv wird erstellt."
tar -cjpf $BACKUP_DIR/backup-$DATE.tar.bz2 $SOURCE
#################################################################################################################
# Zur Erstellung von SQL-Backups bitte den nächtsten Abschnitt auskommentieren
# Erstelle Ordner
if [ ! -d $BACKUP_DIR/datenbanken-$DATE ]
then
mkdir $BACKUP_DIR/datenbanken-$DATE
fi
echo "SQL-Dump wird erstellt."
DATABASES=`mysql -Bse 'show databases'`
for DATABASE in $DATABASES; do
if [ "$DATABASE" != "information_schema" ]; then
mysqldump --skip-lock-tables $DATABASE > $BACKUP_DIR/datenbanken-$DATE/${DATABASE}.sql
fi
done
#################################################################################################################
# Setze Backuprechte auf 600
chmod -R 600 $BACKUP_DIR
find $BACKUP_DIR -type d -print0 | xargs -0 chmod 700
echo "Dateirechte wurden gesetzt"
service apache2 start
echo "Apache Webserver gestartet."
#sudo -u www-data php -f /var/www/nextcloud/occ maintenance:mode --off
#echo "Der Wartungsmodus wurde deaktiviert."
#################################################################################################################
# Falls das Backupverzeichnis noch an einen weiteren Ort synchronisiert werden soll, kann dies hier mit rsync geschehen.
# echo "rsync wird ausgeführt."
# rsync -za $BACKUP_DIR /foo/bar/Backups
echo "Das Backupscript ist durchgelaufen."
exit 0