/
evcode
/
n8n-setup
Обзор
Документация
Войти
/
evcode
/
n8n-setup
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backups/scripts/backup.sh
82 строки
2 KB
Evgeny Epifanov
backup
15 фев 2026, 18:48
15 фев 2026, 18:48
0c6bcb9
Код
Авторство
О чём код?
#!/bin/sh set -e echo "Starting full backup: PostgreSQL + application data..." TMP_DIR="/tmp/backup_$$" mkdir -p "$TMP_DIR" trap 'rm -rf "$TMP_DIR"' EXIT echo "Dumping PostgreSQL with pg_dumpall..." PGPASSFILE="$TMP_DIR/.pgpass" echo "$PG_HOST:$PG_PORT:*:$PG_USER:$PG_PASS" > "$PGPASSFILE" chmod 600 "$PGPASSFILE" export PGPASSFILE DUMP_FILE="$TMP_DIR/pg_all.sql" pg_dumpall \ --host="$PG_HOST" \ --port="$PG_PORT" \ --username="$PG_USER" \ --clean \ --if-exists \ > "$DUMP_FILE" echo "PostgreSQL dump saved ($(du -h "$DUMP_FILE" | cut -f1))" FILE_PATHS=" /n8n/files /n8n/data /nocodb/data /qdrant/data /directus/uploads /directus/extensions .env.backup " BACKUP_PATHS="" for path in $FILE_PATHS; do if [ -e "$path" ]; then BACKUP_PATHS="$BACKUP_PATHS $path" else echo "Skipping non-existent path: $path" fi done BACKUP_PATHS="$BACKUP_PATHS $DUMP_FILE" backup_to_repo() { local REPO_NAME="$1" local REPO_URL="$2" echo "Backing up to $REPO_NAME: $REPO_URL" restic backup \ --repo "$REPO_URL" \ --insecure-tls \ --exclude="*.log" \ -o s3.bucket-lookup=dns \ $BACKUP_PATHS } prune_repo() { local REPO_NAME="$1" local REPO_URL="$2" echo "Pruning $REPO_NAME (keeping last 3 daily snapshots)..." restic forget \ --repo "$REPO_URL" \ --keep-last $RESTIC_KEEP_LAST \ --prune \ --insecure-tls \ -o s3.bucket-lookup=dns } backup_to_repo "local" "$RESTIC_REPOSITORY" prune_repo "local" "$RESTIC_REPOSITORY" # backup_to_repo "s3" "$RESTIC_REPO_S3" # prune_repo "s3" "$RESTIC_REPO_S3" echo "Full backup completed successfully."