Copias de seguridad automatizada por medio de contenedor de los gestores de bases de datos MariaDB y PostgreSQL
- 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 -)"mkdir -p bkpxdb bkpxdb/src/list bkpxdb/logs/app bkpxdb/logs/cronCambiarse al directorio bkpxdb
cd bkpxdb- 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.ymlEstructura de directorios y archivos
bkpxdb
├── data
│ └── config
│ └── bkpxdb-cron
├── docker-compose.yml
├── logs
│ ├── app
│ └── cron
└── src
├── .conf
├── crontab
└── list
├── db_list.csv
└── db.lstPara visualizar use el comando
tree -adocker compose up -d- 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-cronvim src/list/db_list.csvEjemplo:
sysadmin;$Sistemas.123;172.16.20.20;3303;sysadmin;mysql
pgadmin;$Password.123;172.16.20.21;5433;sysadmin;pgEs un archivo csv separado por comas con la siguiente estructura
sysadmin;$Sistemas.123;172.16.20.20;3303;sysadmin;mysql
│ │ │ │ │ │
│ │ │ │ │ │__ Tipo DB (mysql,mdb,pg)
│ │ │ │ │__________ Usuario
│ │ | │________________ Puerto
│ │ │________________________ IP Servidor
│ │_______________________________________ Contraseña
│________________________________________________ Usuariodocker exec -it bkpxdb vim crontab/crontabEjemplo:
# 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!* * * * * 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 minutoSituarse en el directorio dkpxdb y ejecutar el comando
docker exec -it bkpxdb cron-configdocker exec -it bkpxdb /app/scripts/backup.sh- Envió de los archivos
logspor medio de correo electrónico. - Copia automatizada de los archivos de copia de seguridad a un dispositivo de almacenamiento de red.
tail -f logs/app/error.logArchivos de Logs:
- logs/app/error.log
- logs/app/info.log
- logs/app/warning.log
- logs/cron/cron-test.log
- logs/cron/cron.log