Initial commit: Add backup scripts and log file
This commit is contained in:
80
dockerbackups.sh
Normal file
80
dockerbackups.sh
Normal file
@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
|
||||
# --- Konfiguration ---
|
||||
# Verzeichnis, wo deine docker-compose.yml liegt
|
||||
GITEA_DIR="/home/alf/docker/gitea" # <-- ANPASSEN! Dein Gitea Docker Compose Verzeichnis
|
||||
|
||||
# Name deines rclone Remote für JottaCloud
|
||||
RCLONE_REMOTE_NAME="jotta"
|
||||
|
||||
# Zielpfad im JottaCloud Remote (z.B. ein Ordner namens "Gitea" im Root)
|
||||
RCLONE_CLOUD_PATH="/Archiv/Gitea" # <-- ANPASSEN!
|
||||
|
||||
# Lokale Datenpfade für Gitea und die Datenbank
|
||||
LOCAL_GITEA_DATA_PATH="${GITEA_DIR}/data/"
|
||||
LOCAL_GITEA_DB_PATH="${GITEA_DIR}/database/"
|
||||
|
||||
# --- Logging Konfiguration ---
|
||||
LOG_DIR="/root" # <-- ANPASSEN! Sicherstellen, dass dieser Ordner existiert
|
||||
LOG_FILE="${LOG_DIR}/log.txt"
|
||||
|
||||
# Sicherstellen, dass das Log-Verzeichnis existiert
|
||||
mkdir -p "${LOG_DIR}"
|
||||
|
||||
# --- Skript Start ---
|
||||
# Leite NUR die Standardausgabe (stdout) in die Log-Datei um (anhängen)
|
||||
# Fehlerausgabe (stderr) wird NICHT umgeleitet, um rclone -P Fortschritte nicht zu loggen
|
||||
exec 1>>"${LOG_FILE}"
|
||||
|
||||
# Fehlerausgabe vom gesamten Skript kann bei Bedarf in ein separates Fehlerlog geleitet werden,
|
||||
# oder wir belassen sie auf stderr, da rclone -P Fortschritte auf stderr landen
|
||||
# und wir diese ja gerade nicht im Hauptlog wollen.
|
||||
# Wichtige Fehler aus dem Skript (z.B. wenn docker compose fehlschlägt) landen weiterhin
|
||||
# auf der Konsole (bzw. im Cron-Mail, falls konfiguriert) oder können separat gefangen werden.
|
||||
|
||||
echo "--- Gitea Backup (rclone zu JottaCloud) gestartet: $(date) ---"
|
||||
|
||||
# Gitea-Dienste stoppen für konsistentes Backup
|
||||
echo "Stoppe Gitea-Dienste..."
|
||||
cd "${GITEA_DIR}" && docker compose stop
|
||||
|
||||
# Prüfen, ob das Stoppen erfolgreich war
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "FEHLER: Gitea-Dienste konnten nicht gestoppt werden. Backup abgebrochen."
|
||||
# Da wir exec 1>>FILE verwenden, landet dies im Log.
|
||||
# Ein Exit hier würde verhindern, dass der Fehler in ein Cron-Mail geht,
|
||||
# es sei denn, wir leiten stderr explizit um.
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Gitea-Daten sichern
|
||||
echo "Synchronisiere Gitea-Daten zu JottaCloud..."
|
||||
# rclone -P schreibt seinen Fortschritt auf stderr.
|
||||
# Wir leiten stderr von rclone nach /dev/null, um den Fortschritt nicht zu sehen.
|
||||
# rclone's Fehlermeldungen landen weiterhin auf stderr des Skripts.
|
||||
rclone sync -P "${LOCAL_GITEA_DATA_PATH}" "${RCLONE_REMOTE_NAME}:${RCLONE_CLOUD_PATH}/data" 2>/dev/null
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "WARNUNG: Fehler beim rclone Sync der Gitea-Daten aufgetreten."
|
||||
fi
|
||||
|
||||
# Datenbank-Daten sichern
|
||||
echo "Synchronisiere PostgreSQL-Daten zu JottaCloud..."
|
||||
rclone sync -P "${LOCAL_GITEA_DB_PATH}" "${RCLONE_REMOTE_NAME}:${RCLONE_CLOUD_PATH}/database" 2>/dev/null
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "WARNUNG: Fehler beim rclone Sync der Datenbank-Daten aufgetreten."
|
||||
fi
|
||||
|
||||
# Gitea-Dienste wieder starten
|
||||
echo "Starte Gitea-Dienste..."
|
||||
cd "${GITEA_DIR}" && docker compose start
|
||||
|
||||
# Prüfen, ob der Start erfolgreich war
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "FEHLER: Gitea-Dienste konnten nicht gestartet werden. Bitte manuell prüfen."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "--- Gitea Backup (rclone zu JottaCloud) abgeschlossen: $(date) ---"
|
||||
echo "" # Eine leere Zeile für bessere Lesbarkeit zwischen den Läufen
|
||||
66
dockerbackups2.sh
Normal file
66
dockerbackups2.sh
Normal file
@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
|
||||
# --- Zentrale Logging-Funktion einbinden ---
|
||||
# Passe den Pfad an, wenn logger.sh woanders liegt
|
||||
source /root/Scripte/Logger/logger.sh
|
||||
|
||||
# --- Skriptspezifische Konfiguration ---
|
||||
SCRIPT_NAME="Gitea Backup (rclone zu JottaCloud)"
|
||||
SCRIPT_LOG_FILE="/root/gitea_backup.log" # Dediziertes Log für dieses Skript
|
||||
|
||||
# Verzeichnis, wo deine docker-compose.yml liegt
|
||||
GITEA_DIR="/home/alf/docker/gitea" # <-- ANPASSEN! Dein Gitea Docker Compose Verzeichnis
|
||||
|
||||
# Name deines rclone Remote für JottaCloud
|
||||
RCLONE_REMOTE_NAME="jotta"
|
||||
|
||||
# Zielpfad im JottaCloud Remote (z.B. ein Ordner namens "Gitea" im Root)
|
||||
RCLONE_CLOUD_PATH="/Archiv/Gitea" # <-- ANPASSEN!
|
||||
|
||||
# Lokale Datenpfade für Gitea und die Datenbank
|
||||
LOCAL_GITEA_DATA_PATH="${GITEA_DIR}/data/"
|
||||
LOCAL_GITEA_DB_PATH="${GITEA_DIR}/database/"
|
||||
|
||||
# --- Logger initialisieren (muss am Anfang des Skripts passieren) ---
|
||||
log_init "${SCRIPT_LOG_FILE}"
|
||||
|
||||
# --- Skript Start ---
|
||||
log_start "${SCRIPT_NAME}"
|
||||
|
||||
# Gitea-Dienste stoppen für konsistentes Backup
|
||||
log_info "Stoppe Gitea-Dienste..."
|
||||
cd "${GITEA_DIR}" && docker compose stop
|
||||
|
||||
# Prüfen, ob das Stoppen erfolgreich war
|
||||
if [ $? -ne 0 ]; then
|
||||
log_error "Gitea-Dienste konnten nicht gestoppt werden. Backup abgebrochen."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Gitea-Daten sichern
|
||||
log_info "Synchronisiere Gitea-Daten zu JottaCloud..."
|
||||
rclone sync -P "${LOCAL_GITEA_DATA_PATH}" "${RCLONE_REMOTE_NAME}:${RCLONE_CLOUD_PATH}/data" 2>/dev/null
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
log_warn "Fehler beim rclone Sync der Gitea-Daten aufgetreten."
|
||||
fi
|
||||
|
||||
# Datenbank-Daten sichern
|
||||
log_info "Synchronisiere PostgreSQL-Daten zu JottaCloud..."
|
||||
rclone sync -P "${LOCAL_GITEA_DB_PATH}" "${RCLONE_REMOTE_NAME}:${RCLONE_CLOUD_PATH}/database" 2>/dev/null
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
log_warn "Fehler beim rclone Sync der Datenbank-Daten aufgetreten."
|
||||
fi
|
||||
|
||||
# Gitea-Dienste wieder starten
|
||||
log_info "Starte Gitea-Dienste..."
|
||||
cd "${GITEA_DIR}" && docker compose start
|
||||
|
||||
# Prüfen, ob der Start erfolgreich war
|
||||
if [ $? -ne 0 ]; then
|
||||
log_error "Gitea-Dienste konnten nicht gestartet werden. Bitte manuell prüfen."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_end "${SCRIPT_NAME}"
|
||||
Reference in New Issue
Block a user