67 lines
2.1 KiB
Bash
67 lines
2.1 KiB
Bash
#!/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" --log-file=/root/log.txt
|
|
|
|
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}"
|