This commit is contained in:
Eugen Höglinger 2024-11-19 18:08:36 +01:00
commit d077aa721f
12 changed files with 402 additions and 0 deletions

42
dokuwiki_backup.sh Normal file
View File

@ -0,0 +1,42 @@
#!/bin/bash
# Verzeichnisse und Datenbank-Details
CONFIG_DIR="/var/www/dokuwiki/conf"
DATA_DIR="/var/www/dokuwiki/data"
BACKUP_DIR="/path/to/backup"
RETENTION_DAYS=21
# Datum und Zeit für die Sicherung
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
# Sicherungsverzeichnisse erstellen
mkdir -p $BACKUP_DIR/$TIMESTAMP
# Konfiguration sichern
tar -czf $BACKUP_DIR/$TIMESTAMP/dokuwiki_config_$TIMESTAMP.tar.gz -C $CONFIG_DIR .
# Daten sichern
tar -czf $BACKUP_DIR/$TIMESTAMP/dokuwiki_data_$TIMESTAMP.tar.gz -C $DATA_DIR .
# Sicherung überprüfen
if [ -f $BACKUP_DIR/$TIMESTAMP/dokuwiki_config_$TIMESTAMP.tar.gz ] && [ -f $BACKUP_DIR/$TIMESTAMP/dokuwiki_data_$TIMESTAMP.tar.gz ]; then
echo "Sicherung erfolgreich erstellt."
else
echo "Sicherung fehlgeschlagen."
exit 1
fi
# Integrität der Archive überprüfen
if tar -tzf $BACKUP_DIR/$TIMESTAMP/dokuwiki_config_$TIMESTAMP.tar.gz >/dev/null && tar -tzf $BACKUP_DIR/$TIMESTAMP/dokuwiki_data_$TIMESTAMP.tar.gz >/dev/null; then
echo "Archive sind intakt."
else
echo "Archive sind beschädigt."
exit 1
fi
# Alte Sicherungen löschen
find $BACKUP_DIR -type d -mtime +$RETENTION_DAYS -exec rm -rf {} \;
echo "Alte Sicherungen gelöscht."
exit 0

45
dokuwiki_restore.sh Normal file
View File

@ -0,0 +1,45 @@
#!/bin/bash
# Überprüfen, ob alle erforderlichen Parameter übergeben wurden
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <config_backup_file> <data_backup_file>"
exit 1
fi
# Parameter zuweisen
CONFIG_BACKUP_FILE=$1
DATA_BACKUP_FILE=$2
# Verzeichnisse
CONFIG_DIR="/var/www/dokuwiki/conf"
DATA_DIR="/var/www/dokuwiki/data"
# Sicherstellen, dass die Backup-Dateien existieren
if [ ! -f "$CONFIG_BACKUP_FILE" ]; then
echo "Konfigurations-Backup-Datei nicht gefunden: $CONFIG_BACKUP_FILE"
exit 1
fi
if [ ! -f "$DATA_BACKUP_FILE" ]; then
echo "Daten-Backup-Datei nicht gefunden: $DATA_BACKUP_FILE"
exit 1
fi
# DokuWiki in den Wartungsmodus versetzen (falls unterstützt)
# Hier ein Beispiel, wie man eine Wartungsseite anzeigen könnte
echo "DokuWiki in den Wartungsmodus versetzen..."
touch /var/www/dokuwiki/data/pages/maintenance.txt
# Konfiguration zurückspielen
tar -xzf $CONFIG_BACKUP_FILE -C $CONFIG_DIR
# Daten zurückspielen
tar -xzf $DATA_BACKUP_FILE -C $DATA_DIR
# Wartungsmodus deaktivieren
echo "Wartungsmodus deaktivieren..."
rm /var/www/dokuwiki/data/pages/maintenance.txt
echo "Backup erfolgreich zurückgespielt."
exit 0

56
gitea_backup.sh Normal file
View File

@ -0,0 +1,56 @@
#!/bin/bash
# Verzeichnisse und Datenbank-Details
CONFIG_DIR="/etc/gitea"
DATA_DIR="/var/lib/gitea"
DB_NAME="gitea_db"
DB_USER="gitea_user"
DB_PASS="your_password"
BACKUP_DIR="/path/to/backup"
RETENTION_DAYS=21
# Datum und Zeit für die Sicherung
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
# Sicherungsverzeichnisse erstellen
mkdir -p $BACKUP_DIR/$TIMESTAMP
# Konfiguration sichern
tar -czf $BACKUP_DIR/$TIMESTAMP/gitea_config_$TIMESTAMP.tar.gz -C $CONFIG_DIR .
# Daten sichern
tar -czf $BACKUP_DIR/$TIMESTAMP/gitea_data_$TIMESTAMP.tar.gz -C $DATA_DIR .
# Datenbank sichern
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$TIMESTAMP/gitea_db_$TIMESTAMP.sql
# Sicherung überprüfen
if [ -f $BACKUP_DIR/$TIMESTAMP/gitea_config_$TIMESTAMP.tar.gz ] && [ -f $BACKUP_DIR/$TIMESTAMP/gitea_data_$TIMESTAMP.tar.gz ] && [ -f $BACKUP_DIR/$TIMESTAMP/gitea_db_$TIMESTAMP.sql ]; then
echo "Sicherung erfolgreich erstellt."
else
echo "Sicherung fehlgeschlagen."
exit 1
fi
# Integrität der Archive überprüfen
if tar -tzf $BACKUP_DIR/$TIMESTAMP/gitea_config_$TIMESTAMP.tar.gz >/dev/null && tar -tzf $BACKUP_DIR/$TIMESTAMP/gitea_data_$TIMESTAMP.tar.gz >/dev/null; then
echo "Archive sind intakt."
else
echo "Archive sind beschädigt."
exit 1
fi
# Datenbank-Dump überprüfen
if grep -q "Dump completed" $BACKUP_DIR/$TIMESTAMP/gitea_db_$TIMESTAMP.sql; then
echo "Datenbank-Dump ist vollständig."
else
echo "Datenbank-Dump ist unvollständig."
exit 1
fi
# Alte Sicherungen löschen
find $BACKUP_DIR -type d -mtime +$RETENTION_DAYS -exec rm -rf {} \;
echo "Alte Sicherungen gelöscht."
exit 0

54
gitea_restore.sh Normal file
View File

@ -0,0 +1,54 @@
#!/bin/bash
# Überprüfen, ob alle erforderlichen Parameter übergeben wurden
if [ "$#" -ne 3 ]; then
echo "Usage: $0 <config_backup_file> <data_backup_file> <db_backup_file>"
exit 1
fi
# Parameter zuweisen
CONFIG_BACKUP_FILE=$1
DATA_BACKUP_FILE=$2
DB_BACKUP_FILE=$3
# Verzeichnisse und Datenbank-Details
CONFIG_DIR="/etc/gitea"
DATA_DIR="/var/lib/gitea"
DB_NAME="gitea_db"
DB_USER="gitea_user"
DB_PASS="your_password"
# Sicherstellen, dass die Backup-Dateien existieren
if [ ! -f "$CONFIG_BACKUP_FILE" ]; then
echo "Konfigurations-Backup-Datei nicht gefunden: $CONFIG_BACKUP_FILE"
exit 1
fi
if [ ! -f "$DATA_BACKUP_FILE" ]; then
echo "Daten-Backup-Datei nicht gefunden: $DATA_BACKUP_FILE"
exit 1
fi
if [ ! -f "$DB_BACKUP_FILE" ]; then
echo "Datenbank-Backup-Datei nicht gefunden: $DB_BACKUP_FILE"
exit 1
fi
# Gitea stoppen
systemctl stop gitea
# Konfiguration zurückspielen
tar -xzf $CONFIG_BACKUP_FILE -C $CONFIG_DIR
# Daten zurückspielen
tar -xzf $DATA_BACKUP_FILE -C $DATA_DIR
# Datenbank zurückspielen
mysql -u $DB_USER -p$DB_PASS $DB_NAME < $DB_BACKUP_FILE
# Gitea starten
systemctl start gitea
echo "Backup erfolgreich zurückgespielt."
exit 0

64
nectcloud_backup.sh Normal file
View File

@ -0,0 +1,64 @@
#!/bin/bash
# Verzeichnisse und Datenbank-Details
CONFIG_DIR="/var/www/nextcloud/config"
DATA_DIR="/mnt/nvmedrv/nextcloud/data"
DB_NAME="nextcloud_db"
DB_USER="nextcloud_user"
DB_PASS="your_password"
BACKUP_DIR="/path/to/backup"
RETENTION_DAYS=21
# Datum und Zeit für die Sicherung
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
# Sicherungsverzeichnisse erstellen
mkdir -p $BACKUP_DIR/$TIMESTAMP
# Konfiguration sichern
tar -czf $BACKUP_DIR/$TIMESTAMP/nextcloud_config_$TIMESTAMP.tar.gz -C $CONFIG_DIR .
# Daten sichern
tar -czf $BACKUP_DIR/$TIMESTAMP/nextcloud_data_$TIMESTAMP.tar.gz -C $DATA_DIR .
# Datenbank sichern
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$TIMESTAMP/nextcloud_db_$TIMESTAMP.sql
# Sicherung überprüfen
if [ -f $BACKUP_DIR/$TIMESTAMP/nextcloud_config_$TIMESTAMP.tar.gz ] && [ -f $BACKUP_DIR/$TIMESTAMP/nextcloud_data_$TIMESTAMP.tar.gz ] && [ -f $BACKUP_DIR/$TIMESTAMP/nextcloud_db_$TIMESTAMP.sql ]; then
echo "Sicherung erfolgreich erstellt."
else
echo "Sicherung fehlgeschlagen."
exit 1
fi
# Integrität der Archive überprüfen
if tar -tzf $BACKUP_DIR/$TIMESTAMP/nextcloud_config_$TIMESTAMP.tar.gz >/dev/null && tar -tzf $BACKUP_DIR/$TIMESTAMP/nextcloud_data_$TIMESTAMP.tar.gz >/dev/null; then
echo "Archive sind intakt."
else
echo "Archive sind beschädigt."
exit 1
fi
# Datenbank-Dump überprüfen
if grep -q "Dump completed" $BACKUP_DIR/$TIMESTAMP/nextcloud_db_$TIMESTAMP.sql; then
echo "Datenbank-Dump ist vollständig."
else
echo "Datenbank-Dump ist unvollständig."
exit 1
fi
# Alte Sicherungen löschen
find $BACKUP_DIR -type d -mtime +$RETENTION_DAYS -exec rm -rf {} \;
echo "Alte Sicherungen gelöscht."
exit 0

54
nextcloud_restore.sh Normal file
View File

@ -0,0 +1,54 @@
#!/bin/bash
# Überprüfen, ob alle erforderlichen Parameter übergeben wurden
if [ "$#" -ne 3 ]; then
echo "Usage: $0 <config_backup_file> <data_backup_file> <db_backup_file>"
exit 1
fi
# Parameter zuweisen
CONFIG_BACKUP_FILE=$1
DATA_BACKUP_FILE=$2
DB_BACKUP_FILE=$3
# Verzeichnisse und Datenbank-Details
CONFIG_DIR="/var/www/nextcloud/config"
DATA_DIR="/mnt/nvmedrv/nextcloud/data"
DB_NAME="nextcloud_db"
DB_USER="nextcloud_user"
DB_PASS="your_password"
# Sicherstellen, dass die Backup-Dateien existieren
if [ ! -f "$CONFIG_BACKUP_FILE" ]; then
echo "Konfigurations-Backup-Datei nicht gefunden: $CONFIG_BACKUP_FILE"
exit 1
fi
if [ ! -f "$DATA_BACKUP_FILE" ]; then
echo "Daten-Backup-Datei nicht gefunden: $DATA_BACKUP_FILE"
exit 1
fi
if [ ! -f "$DB_BACKUP_FILE" ]; then
echo "Datenbank-Backup-Datei nicht gefunden: $DB_BACKUP_FILE"
exit 1
fi
# Nextcloud in den Wartungsmodus versetzen
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
# Konfiguration zurückspielen
tar -xzf $CONFIG_BACKUP_FILE -C $CONFIG_DIR
# Daten zurückspielen
tar -xzf $DATA_BACKUP_FILE -C $DATA_DIR
# Datenbank zurückspielen
mysql -u $DB_USER -p$DB_PASS $DB_NAME < $DB_BACKUP_FILE
# Nextcloud aus dem Wartungsmodus nehmen
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
echo "Backup erfolgreich zurückgespielt."
exit 0

14
run_dokuwiki_backup.sh Normal file
View File

@ -0,0 +1,14 @@
#!/bin/bash
# Das Skript aufrufen
./backup_dokuwiki.sh
# Den Exit-Code des Kind-Skripts abfragen
EXIT_CODE=$?
# Überprüfen, ob das Skript erfolgreich war
if [ $EXIT_CODE -eq 0 ]; then
echo "Das Skript war erfolgreich."
else
echo "Das Skript ist fehlgeschlagen mit Exit-Code $EXIT_CODE."
fi

15
run_dokuwiki_restore.sh Normal file
View File

@ -0,0 +1,15 @@
#!/bin/bash
# Das Skript aufrufen.
# ACHTUNG: Ersetze die Werte in eckiger Klammer durch die Namen der entsprechenden Datei
./dokuwiki_restore.sh <config_backup_file> <data_backup_file> <db_backup_file>
# Den Exit-Code des Kind-Skripts abfragen
EXIT_CODE=$?
# Überprüfen, ob das Skript erfolgreich war
if [ $EXIT_CODE -eq 0 ]; then
echo "Das Skript war erfolgreich."
else
echo "Das Skript ist fehlgeschlagen mit Exit-Code $EXIT_CODE."
fi

14
run_gitea_backup.sh Normal file
View File

@ -0,0 +1,14 @@
#!/bin/bash
# Das Skript aufrufen
./backup_gitea.sh
# Den Exit-Code des Kind-Skripts abfragen
EXIT_CODE=$?
# Überprüfen, ob das Skript erfolgreich war
if [ $EXIT_CODE -eq 0 ]; then
echo "Das Skript war erfolgreich."
else
echo "Das Skript ist fehlgeschlagen mit Exit-Code $EXIT_CODE."
fi

15
run_gitea_restore.sh Normal file
View File

@ -0,0 +1,15 @@
#!/bin/bash
# Das Skript aufrufen.
# ACHTUNG: Ersetze die Werte in eckiger Klammer durch die Namen der entsprechenden Datei
./gitea_restore.sh <config_backup_file> <data_backup_file> <db_backup_file>
# Den Exit-Code des Kind-Skripts abfragen
EXIT_CODE=$?
# Überprüfen, ob das Skript erfolgreich war
if [ $EXIT_CODE -eq 0 ]; then
echo "Das Skript war erfolgreich."
else
echo "Das Skript ist fehlgeschlagen mit Exit-Code $EXIT_CODE."
fi

14
run_nextcloud_backup.sh Normal file
View File

@ -0,0 +1,14 @@
#!/bin/bash
# Das Skript aufrufen
./backup_nextcloud.sh
# Den Exit-Code des Kind-Skripts abfragen
EXIT_CODE=$?
# Überprüfen, ob das Skript erfolgreich war
if [ $EXIT_CODE -eq 0 ]; then
echo "Das Skript war erfolgreich."
else
echo "Das Skript ist fehlgeschlagen mit Exit-Code $EXIT_CODE."
fi

15
run_nextcloud_restore.sh Normal file
View File

@ -0,0 +1,15 @@
#!/bin/bash
# Das Skript aufrufen.
# ACHTUNG: Ersetze die Werte in eckiger Klammer durch die Namen der entsprechenden Datei
./nextcloud_restore.sh <config_backup_file> <data_backup_file> <db_backup_file>
# Den Exit-Code des Kind-Skripts abfragen
EXIT_CODE=$?
# Überprüfen, ob das Skript erfolgreich war
if [ $EXIT_CODE -eq 0 ]; then
echo "Das Skript war erfolgreich."
else
echo "Das Skript ist fehlgeschlagen mit Exit-Code $EXIT_CODE."
fi