Add Backup/backup_gitea.sh
This commit is contained in:
65
Backup/backup_gitea.sh
Normal file
65
Backup/backup_gitea.sh
Normal 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
|
Reference in New Issue
Block a user