EN /HU | Belépés

Mentési szkriptek

Makefile-alapú mentési rendszer a Docker-adatbázisainkhoz és a Gitea-repókhoz: SQL-dumpok, git-tükrök, megőrzési takarítás és távoli rsync.

Konfiguráció

Környezeti változók a Makefile-ban:

Változó Jelentés
BACKUP_BASE Minden mentés gyökere (alapérték /srv/backup)
BACKUP_KEEP_DAYS Az adatbázisdumpok megőrzési ideje (alapérték 7)
DATABASE_BACKUP_BASE Ide kerülnek az SQL-dumpok
REPOSITORY_BACKUP_BASE Ide kerülnek a tükrözött repók
GITEA_TOKEN API-token a repók listázásához
RSYNC_* Távoli célpont: hoszt, felhasználó, port, útvonal

Célok

BASH
export GITEA_TOKEN="your_token_here"

make backup                        # db dumps -> repos -> db_cleanup -> sync
make db_redmine db_wiki db_catalog  # csak az adatbázisok
make repos                         # a git-tükrök frissítése
make db_cleanup                    # a lejárt dumpok törlése

Adatbázismentések

Minden dump a szolgáltatás konténerén belül futtat egy szkriptet. A dumpok időbélyeggel a konténer /db_backup könyvtárába kerülnek, amelyet a hoszt DATABASE_BACKUP_BASE könyvtárára kell csatolni.

Szolgáltatás Szkript Mire van szükség a konténerben
Redmine (MariaDB) database/mariadb_backup.sh MARIADB_USER, MARIADB_PASSWORD, MARIADB_DATABASE
Wiki (PostgreSQL) database/pg_backup.sh POSTGRES_USER, POSTGRES_DB
Katalógus (MySQL) database/mysql_backup.sh MYSQL_ROOT_PASSWORD, MYSQL_DATABASE

Repómentések

A make repos a Gitea API-ból kilistázza az összes privát és publikus repót, majd repónként: fetch --all --prune + pull, ha helyben már megvan, git clone, ha még nincs.

Takarítás

A make db_cleanup adatbázis-előtag szerint csoportosítja a dumpokat, és törli a BACKUP_KEEP_DAYS-nél régebbi fájlokat. Egy biztonsági ellenőrzés adatbázisonként legalább egy mentést mindig meghagy, akkor is, ha az régebbi a megőrzési ablaknál.

Távoli szinkron

A make sync a DATABASE_BACKUP_BASE és a REPOSITORY_BACKUP_BASE tartalmát rsyncelli a távoli szerverre SSH-n, egyedi porttal és állítható távoli rsync útvonallal.

Fájlszerkezet

TEXT
.
├── Makefile                # minden mentési feladat
├── DOCS.md
└── database/
    ├── mariadb_backup.sh
    ├── mysql_backup.sh
    └── pg_backup.sh

BACKUP_BASE=/srv/backup esetén:

TEXT
/srv/backup/
├── database/
│   ├── redmine-2026-03-07-12-00.sql
│   ├── wiki-2026-03-07-12-00.sql
│   └── catalog-2026-03-07-12-00.sql
└── repositories/
    ├── project-a/.git/
    └── project-b/.git/

Repó

https://git.teletypegames.org/infra/backup-scripts