first commit

This commit is contained in:
2025-07-07 12:44:46 +00:00
commit 227f1a6946
2 changed files with 92 additions and 0 deletions

65
backup_gitea.sh Executable 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

27
send_mail.py Normal file
View File

@ -0,0 +1,27 @@
#!/usr/bin/env python3
import smtplib
from email.message import EmailMessage
import sys
def send_mail(subject, body, to_email):
msg = EmailMessage()
msg.set_content(body)
msg['Subject'] = subject
msg['From'] = GMAIL_USER
msg['To'] = to_email
with smtplib.SMTP('mail.com', 587) as server:
server.starttls()
server.login(GMAIL_USER, GMAIL_PASS)
server.send_message(msg)
if __name__ == "__main__":
GMAIL_USER = "email@test.com"
GMAIL_PASS = "passwd"
subject = sys.argv[1]
body = sys.argv[2]
to_email = sys.argv[3]
send_mail(subject, body, to_email)