Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

EkSysTI/bkpxdb

Repository files navigation

BkpXDB

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

Instalacion

Instalacion 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/head s/main/install.sh -O -)"

Instalacion 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 ejecucion
docker exec -it bkpxdb chown root:root /etc/cron.d/bkpxdb-cron
  • Sin el contenedor en ejecucion
sudo chown root:root /data/config/bkpxdb-cron

Configuracion Basicas

Configuracion 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
| |_______________________________________ Contrasena
|________________________________________________ Usuario

Configuracion archivo crontab

docker exec -it bkpxdb vim crontab/crontab

Ejemplo:

# Copias de seguridad programadas
# Todos los dias a las 23:30
30 23 * * * root /app/scripts/backup.sh
# Todos los dias a las 13:30
30 13 * * * root /app/scripts/backup.sh
# Todos los dias 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
| | | | |_____________________ Dia de la semana (0 - 6) (0 es domingo, o utilice nombres)
| | | |_______________________ Mes (1 - 12),* significa cada mes
| | |_________________________ Dia del mes (1 - 31),* significa cada dia
| |___________________________ Hora (0 - 23),* significa cada hora
|_____________________________ Minuto (0 - 59),* significa cada minuto

Cargando configuracion

Situarse en el directorio dkpxdb y ejecutar el comando

docker exec -it bkpxdb cron-config

Ejecucion manual

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

Funcionalidades futuras

  • Envio de los archivos logs por medio de correo electronico.
  • 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 comprobacion de Cron

https://crontab-generator.org/

https://crontab.guru/

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

About

Proyecto de copias de seguridad automatizadas y en contenedor de bases de datos MariaDB y PostgreSQL.

Topics

Resources

Readme

License

View license

Code of conduct

Code of conduct

Stars

Watchers

Forks

Contributors