#!/bin/bash CONTAINER_NAME="gitea" CONF_PATH="/data/gitea/conf" REPO_PATH="/data/gitea/data/git/repositories" TMP_BACKUP_DIR="/tmp/gitea_backup" CONF_TMP_DIR="${TMP_BACKUP_DIR}/conf" REPO_TMP_DIR="${TMP_BACKUP_DIR}/repositories" BACKUP_DIR="$HOME/backup/gitea" DATE=$(date +"%Y-%m-%d_%H-%M-%S") BACKUP_FILE="${BACKUP_DIR}/gitea_backup_${DATE}.tar.gz" LOG_FILE="${BACKUP_DIR}/backup_log_${DATE}.txt" EMAIL="test@email.com" mkdir -p "$BACKUP_DIR" mkdir -p "$CONF_TMP_DIR" mkdir -p "$REPO_TMP_DIR" { echo "Backup rozpoczęty: $(date)" if ! docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then echo "Błąd: kontener $CONTAINER_NAME nie działa lub nie istnieje" exit 1 fi rm -rf "${TMP_BACKUP_DIR:?}/*" echo "Kopiowanie konfiguracji..." docker cp "${CONTAINER_NAME}:${CONF_PATH}/app.ini" "$CONF_TMP_DIR/app.ini" if [[ $? -ne 0 ]]; then echo "Błąd podczas kopiowania konfiguracji" exit 1 fi echo "Kopiowanie repozytoriów..." docker cp "${CONTAINER_NAME}:${REPO_PATH}" "$REPO_TMP_DIR" if [[ $? -ne 0 ]]; then echo "Błąd podczas kopiowania repozytoriów" exit 1 fi tar -czf "$BACKUP_FILE" -C "$TMP_BACKUP_DIR" . if [[ $? -ne 0 ]]; then echo "Błąd podczas tworzenia archiwum" exit 1 fi echo "Backup zakończony sukcesem: $(date)" rm -rf "$TMP_BACKUP_DIR" } > "$LOG_FILE" 2>&1 if grep -q "Błąd" "$LOG_FILE"; then mail_subject="Backup Gitea NIE powiódł się: $DATE" else mail_subject="Backup Gitea zakończony sukcesem: $DATE" fi mail_body=$(cat "$LOG_FILE") python3 ./send_mail.py "$mail_subject" "$mail_body" $EMAIL