first commit
This commit is contained in:
65
backup_gitea.sh
Executable file
65
backup_gitea.sh
Executable 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
27
send_mail.py
Normal 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)
|
||||
|
Reference in New Issue
Block a user