Add Backup/backup_gitea.sh

This commit is contained in:
2025-07-21 07:25:12 +00:00
parent 17ee779787
commit 340249cc7f

65
Backup/backup_gitea.sh Normal file
View File

@ -0,0 +1,65 @@
#!/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