{"id":17783347,"url":"https://github.com/gorillati/bkpxdb","last_synced_at":"2025-06-22T14:06:06.823Z","repository":{"id":252986043,"uuid":"842080972","full_name":"GorillaTi/bkpxdb","owner":"GorillaTi","description":"Proyecto de copias de seguridad automatizadas y en contenedor de bases de datos MariaDB y PostgreSQL.","archived":false,"fork":false,"pushed_at":"2024-10-16T14:10:08.000Z","size":88,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-15T23:11:13.927Z","etag":null,"topics":["backup","crontab","debian","docker-compose","dockerfile","mariadb-client","postgresql-extension"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GorillaTi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-13T16:23:43.000Z","updated_at":"2024-10-16T14:10:11.000Z","dependencies_parsed_at":"2024-08-29T14:46:45.945Z","dependency_job_id":"3f2f63db-5076-4c69-ab9c-f61be140d483","html_url":"https://github.com/GorillaTi/bkpxdb","commit_stats":null,"previous_names":["gorillati/bkpxdb"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GorillaTi%2Fbkpxdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GorillaTi%2Fbkpxdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GorillaTi%2Fbkpxdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GorillaTi%2Fbkpxdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GorillaTi","download_url":"https://codeload.github.com/GorillaTi/bkpxdb/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243822312,"owners_count":20353496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backup","crontab","debian","docker-compose","dockerfile","mariadb-client","postgresql-extension"],"created_at":"2024-10-27T07:03:19.160Z","updated_at":"2025-03-16T03:30:27.264Z","avatar_url":"https://github.com/GorillaTi.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BkpXDB ![GitHub Repo stars](https://img.shields.io/github/stars/GorillaTi/bkpxdb) ![GitHub forks](https://img.shields.io/github/forks/GorillaTi/bkpxdb)\n\n![GitHub Tag](https://img.shields.io/github/v/tag/GorillaTi/bkpxdb) \n![GitHub last commit](https://img.shields.io/github/last-commit/GorillaTi/bkpxdb) \n![Docker Pulls](https://img.shields.io/docker/pulls/ecespedes/bkpxdb) \n![GitHub License](https://img.shields.io/github/license/GorillaTi/bkpxdb) \n\nCopias de seguridad automatizada por medio de contenedor de los gestores de bases de datos MariaDB y PostgreSQL\n\n## Instalación\n\n### Instalación Desatendida\n\n- Instalando bkpxdb via curl\n\n```bash\nsh -c \"$(curl -fsSL https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/install.sh)\"\n```\n\n- Instalando bkpxdb via wget\n\n```bash\nsh -c \"$(wget https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/install.sh -O -)\"\n```\n\n### Instalación Manual  \n\n#### Crear los directorios base necesarios\n\n```bash\nmkdir -p bkpxdb bkpxdb/src/list bkpxdb/logs/app bkpxdb/logs/cron\n```\n\nCambiarse al directorio `bkpxdb`\n\n```bash\ncd bkpxdb\n```\n\n#### Descargando archivos necesarios\n\n- db_list.csv\n\n```bash\nwget -nc -O \"src/list/db_list.csv\" https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/src/list/db_list.csv.example\n```\n\n- bkpxdb-cron\n\n```bash\nwget -nc -O \"data/config/bkpxdb-cron\" https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/src/cront.example\n```\n\n- crontab\n\n```bash\n wget -nc -O \"src/crontab\" https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/src/crontab.example\n```\n\n- .conf\n\n```bash\nwget -nc -O \"src/.conf\" https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/src/.conf.example\n```\n\n- docker-compose.yml\n\n```bash\nwget -O \"docker-compose.yml\" https://raw.githubusercontent.com/GorillaTi/bkpxdb/refs/heads/main/docker-compose.yml\n```\n\nEstructura de directorios y archivos\n\n```shell\nbkpxdb\n├── data\n│   └── config\n│       └── bkpxdb-cron\n├── docker-compose.yml\n├── logs\n│   ├── app\n│   └── cron\n└── src\n    ├── .conf\n    ├── crontab\n    └── list\n        ├── db_list.csv\n        └── db.lst\n```\n\nPara visualizar use el comando\n\n```bash\ntree -a\n```\n\n##  Iniciar el servicio\n\n```bash\ndocker compose up -d\n```\n\n## Cambiando Permisos del archivo `bkpxdb-cron`\n\n- Con el contenedor en ejecución\n\n```bash\ndocker exec -it bkpxdb chown root:root /etc/cron.d/bkpxdb-cron\n```\n\n- Sin el contenedor en ejecución\n\n```bash\nsudo chown root:root /data/config/bkpxdb-cron\n```\n\n## Configuración Básicas\n\n### Configuración archivo `db_list.csv`\n\n```bash\nvim src/list/db_list.csv\n```\n\nEjemplo:\n\n```shell\nsysadmin;$Sistemas.123;172.16.20.20;3303;sysadmin;mysql\npgadmin;$Password.123;172.16.20.21;5433;sysadmin;pg\n```\n\nEs un archivo csv separado por comas con la siguiente estructura\n\n#### Sintaxis archivo `db_list.csv`\n\n```shell\nsysadmin;$Sistemas.123;172.16.20.20;3303;sysadmin;mysql\n    │        │               │       │     │       │\n    │        │               │       │     │       │__\tTipo DB (mysql,mdb,pg)\n    │        │               │       │     │__________\tUsuario\n    │        │               |       │________________\tPuerto\n    │        │               │________________________\tIP Servidor\n    │        │_______________________________________   Contraseña\n    │________________________________________________   Usuario\n```\n\n### Configuración archivo `crontab`\n\n```bash\ndocker exec -it bkpxdb vim crontab/crontab\n```\n\nEjemplo:\n\n```shell\n# Copias de seguridad programadas\n# Todos los días a las 23:30\n30 23 * * * root /app/scripts/backup.sh\n# Todos los días a las 13:30\n30 13 * * * root /app/scripts/backup.sh\n# Todos los días a las 19:30\n30 19 * * * root /app/scripts/backup.sh\n\n# Pruebas de funcionamiento de cron\n* * * * * root date \u003e\u003e /var/log/cron/cron.log 2\u003e\u00261\n* * * * * root /app/scripts/cron-test.sh\n*/10 * * * * root truncate -s 0 /var/log/cron/cron*.log\n# New line charter required!\n```\n\n#### Sintaxis de `crontab`\n\n```shell\n* * * * * NOMBRE_USUARIO COMANDO/SCRIPT-A-EJECUTAR\n│ │ │ │ │ │\t\t\t\t│____  Comando a ejecutar\n│ │ │ │ │ │___________________\tUsuario que ejecutara el job\n│ │ │ │ │_____________________\tDía de la semana (0 – 6) (0 es domingo, o utilice nombres)\n│ │ | │_______________________\tMes (1 – 12),* significa cada mes\n│ │ │_________________________\tDía del mes (1 – 31),* significa cada día\n│ │___________________________\tHora (0 – 23),* significa cada hora\n│_____________________________\tMinuto (0 – 59),* significa cada minuto\n```\n\n### Cargando configuración\n\nSituarse en el directorio `dkpxdb` y ejecutar el comando\n\n```bash\ndocker exec -it bkpxdb cron-config\n```\n\n## Ejecución manual\n\n```bash\ndocker exec -it bkpxdb /app/scripts/backup.sh\n```\n\n## Funcionalidades futuras\n\n- Envió de los archivos `logs`  por medio de correo electrónico.\n- Copia automatizada de los archivos de copia de seguridad a un dispositivo de almacenamiento de red.\n\n## Revision de Logs\n\n```bash\ntail -f logs/app/error.log\n```\nArchivos de Logs:\n\n- logs/app/error.log\n- logs/app/info.log\n- logs/app/warning.log\n- logs/cron/cron-test.log\n- logs/cron/cron.log\n\n## Herramientas de formateo y comprobación de Cron\n\nhttps://crontab-generator.org/\n\nhttps://crontab.guru/\n\nhttps://www.generateit.net/cron-job/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgorillati%2Fbkpxdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgorillati%2Fbkpxdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgorillati%2Fbkpxdb/lists"}