diff --git a/Backup/backup_gitea.sh b/Backup/backup_gitea.sh new file mode 100644 index 0000000..2ae5470 --- /dev/null +++ b/Backup/backup_gitea.sh @@ -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