Sign inSign up

ecespedes/bkpxdb

By ecespedes

•Updated almost 2 years ago

Copias de seguridad de gestores de bases de datos MySQL, MariaDB y PostgreSQL

Image
Databases & storage
0

10K+

ecespedes/bkpxdb repository overview

⁠BkpXDB Guias GitHub Repo stars GitHub forks

GitHub Tag GitHub last commit Docker Pulls GitHub License

Copias de seguridad automatizada por medio de contenedor de los gestores de bases de datos MariaDB y PostgreSQL

⁠Instalación

⁠Instalación Desatendida
  • Instalando bkpxdb via curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/install.sh)"
  • Instalando bkpxdb via wget
sh -c "$(wget https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/install.sh -O -)"
⁠Instalación Manual
⁠Crear los directorios base necesarios
mkdir -p bkpxdb bkpxdb/src/list bkpxdb/logs/app bkpxdb/logs/cron

Cambiarse al directorio bkpxdb

cd bkpxdb
⁠Descargando archivos necesarios
  • db_list.csv
wget -nc -O "src/list/db_list.csv" https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/src/list/db_list.csv.example
  • bkpxdb-cron
wget -nc -O "data/config/bkpxdb-cron" https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/src/cront.example
  • crontab
 wget -nc -O "src/crontab" https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/src/crontab.example
  • .conf
wget -nc -O "src/.conf" https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/src/.conf.example
  • docker-compose.yml
wget -O "docker-compose.yml" https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/docker-compose.yml

Estructura de directorios y archivos

bkpxdb
├── data
│   └── config
│       └── bkpxdb-cron
├── docker-compose.yml
├── logs
│   ├── app
│   └── cron
└── src
    ├── .conf
    ├── crontab
    └── list
        ├── db_list.csv
        └── db.lst

Para visualizar use el comando

tree -a

⁠Iniciar el servicio

docker compose up -d

⁠Cambiando Permisos del archivo bkpxdb-cron

  • Con el contenedor en ejecución
docker exec -it bkpxdb chown root:root /etc/cron.d/bkpxdb-cron
  • Sin el contenedor en ejecución
sudo chown root:root /data/config/bkpxdb-cron

⁠Configuración Básicas

⁠Configuración archivo db_list.csv
vim src/list/db_list.csv

Ejemplo:

sysadmin;$Sistemas.123;172.16.20.20;3303;sysadmin;mysql
pgadmin;$Password.123;172.16.20.21;5433;sysadmin;pg

Es un archivo csv separado por comas con la siguiente estructura

⁠Sintaxis archivo db_list.csv
sysadmin;$Sistemas.123;172.16.20.20;3303;sysadmin;mysql
    │        │               │       │     │       │
    │        │               │       │     │       │__	Tipo DB (mysql,mdb,pg)
    │        │               │       │     │__________	Usuario
    │        │               |       │________________	Puerto
    │        │               │________________________	IP Servidor
    │        │_______________________________________   Contraseña
    │________________________________________________   Usuario
⁠Configuración archivo crontab
docker exec -it bkpxdb vim crontab/crontab

Ejemplo:

# Copias de seguridad programadas
# Todos los días a las 23:30
30 23 * * * root /app/scripts/backup.sh
# Todos los días a las 13:30
30 13 * * * root /app/scripts/backup.sh
# Todos los días a las 19:30
30 19 * * * root /app/scripts/backup.sh

# Pruebas de funcionamiento de cron
* * * * * root date >> /var/log/cron/cron.log 2>&1
* * * * * root /app/scripts/cron-test.sh
*/10 * * * * root truncate -s 0 /var/log/cron/cron*.log
# New line charter required!
⁠Sintaxis de crontab
* * * * * NOMBRE_USUARIO COMANDO/SCRIPT-A-EJECUTAR
│ │ │ │ │ │				│____  Comando a ejecutar
│ │ │ │ │ │___________________	Usuario que ejecutara el job
│ │ │ │ │_____________________	Día de la semana (0 – 6) (0 es domingo, o utilice nombres)
│ │ | │_______________________	Mes (1 – 12),* significa cada mes
│ │ │_________________________	Día del mes (1 – 31),* significa cada día
│ │___________________________	Hora (0 – 23),* significa cada hora
│_____________________________	Minuto (0 – 59),* significa cada minuto
⁠Cargando configuración

Situarse en el directorio dkpxdb y ejecutar el comando

docker exec -it bkpxdb cron-config

⁠Ejecución manual

docker exec -it bkpxdb /app/scripts/backup.sh

⁠Funcionalidades futuras

  • Envió de los archivos logs por medio de correo electrónico.
  • Copia automatizada de los archivos de copia de seguridad a un dispositivo de almacenamiento de red.

⁠Revision de Logs

tail -f logs/app/error.log

Archivos de Logs:

  • logs/app/error.log
  • logs/app/info.log
  • logs/app/warning.log
  • logs/cron/cron-test.log
  • logs/cron/cron.log

⁠Herramientas de formateo y comprobación de Cron

https://crontab-generator.org/⁠

https://crontab.guru/⁠

https://www.generateit.net/cron-job/⁠

Tag summary

Content type

Image

Digest

sha256:56d0aa7dd…

Size

128.1 MB

Last updated

almost 2 years ago

docker pull ecespedes/bkpxdb