From d077aa721f4f65ebdf0e09a3a901a32b76b25a73 Mon Sep 17 00:00:00 2001 From: eugen Date: Tue, 19 Nov 2024 18:08:36 +0100 Subject: [PATCH] Initial --- dokuwiki_backup.sh | 42 ++++++++++++++++++++++++++ dokuwiki_restore.sh | 45 ++++++++++++++++++++++++++++ gitea_backup.sh | 56 +++++++++++++++++++++++++++++++++++ gitea_restore.sh | 54 +++++++++++++++++++++++++++++++++ nectcloud_backup.sh | 64 ++++++++++++++++++++++++++++++++++++++++ nextcloud_restore.sh | 54 +++++++++++++++++++++++++++++++++ run_dokuwiki_backup.sh | 14 +++++++++ run_dokuwiki_restore.sh | 15 ++++++++++ run_gitea_backup.sh | 14 +++++++++ run_gitea_restore.sh | 15 ++++++++++ run_nextcloud_backup.sh | 14 +++++++++ run_nextcloud_restore.sh | 15 ++++++++++ 12 files changed, 402 insertions(+) create mode 100644 dokuwiki_backup.sh create mode 100644 dokuwiki_restore.sh create mode 100644 gitea_backup.sh create mode 100644 gitea_restore.sh create mode 100644 nectcloud_backup.sh create mode 100644 nextcloud_restore.sh create mode 100644 run_dokuwiki_backup.sh create mode 100644 run_dokuwiki_restore.sh create mode 100644 run_gitea_backup.sh create mode 100644 run_gitea_restore.sh create mode 100644 run_nextcloud_backup.sh create mode 100644 run_nextcloud_restore.sh diff --git a/dokuwiki_backup.sh b/dokuwiki_backup.sh new file mode 100644 index 0000000..a3f370a --- /dev/null +++ b/dokuwiki_backup.sh @@ -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 \ No newline at end of file diff --git a/dokuwiki_restore.sh b/dokuwiki_restore.sh new file mode 100644 index 0000000..4ed0e4e --- /dev/null +++ b/dokuwiki_restore.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +# Überprüfen, ob alle erforderlichen Parameter übergeben wurden +if [ "$#" -ne 2 ]; then + echo "Usage: $0 " + 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 \ No newline at end of file diff --git a/gitea_backup.sh b/gitea_backup.sh new file mode 100644 index 0000000..fc8d9a3 --- /dev/null +++ b/gitea_backup.sh @@ -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 \ No newline at end of file diff --git a/gitea_restore.sh b/gitea_restore.sh new file mode 100644 index 0000000..749962c --- /dev/null +++ b/gitea_restore.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# Überprüfen, ob alle erforderlichen Parameter übergeben wurden +if [ "$#" -ne 3 ]; then + echo "Usage: $0 " + 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 \ No newline at end of file diff --git a/nectcloud_backup.sh b/nectcloud_backup.sh new file mode 100644 index 0000000..8e2f297 --- /dev/null +++ b/nectcloud_backup.sh @@ -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 + + + + + + + + diff --git a/nextcloud_restore.sh b/nextcloud_restore.sh new file mode 100644 index 0000000..7782490 --- /dev/null +++ b/nextcloud_restore.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# Überprüfen, ob alle erforderlichen Parameter übergeben wurden +if [ "$#" -ne 3 ]; then + echo "Usage: $0 " + 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 \ No newline at end of file diff --git a/run_dokuwiki_backup.sh b/run_dokuwiki_backup.sh new file mode 100644 index 0000000..35f72fd --- /dev/null +++ b/run_dokuwiki_backup.sh @@ -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 \ No newline at end of file diff --git a/run_dokuwiki_restore.sh b/run_dokuwiki_restore.sh new file mode 100644 index 0000000..3d2a956 --- /dev/null +++ b/run_dokuwiki_restore.sh @@ -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 + +# 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 \ No newline at end of file diff --git a/run_gitea_backup.sh b/run_gitea_backup.sh new file mode 100644 index 0000000..4dcd2ee --- /dev/null +++ b/run_gitea_backup.sh @@ -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 \ No newline at end of file diff --git a/run_gitea_restore.sh b/run_gitea_restore.sh new file mode 100644 index 0000000..4f4cd0c --- /dev/null +++ b/run_gitea_restore.sh @@ -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 + +# 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 \ No newline at end of file diff --git a/run_nextcloud_backup.sh b/run_nextcloud_backup.sh new file mode 100644 index 0000000..e1aaf8e --- /dev/null +++ b/run_nextcloud_backup.sh @@ -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 \ No newline at end of file diff --git a/run_nextcloud_restore.sh b/run_nextcloud_restore.sh new file mode 100644 index 0000000..fa12c5f --- /dev/null +++ b/run_nextcloud_restore.sh @@ -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 + +# 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 \ No newline at end of file