Commit 815f4ac4 by Javier

Proyecto realizado a falta de pruebas, ya que falla al ejecutar el comando para…

Proyecto realizado a falta de pruebas, ya que falla al ejecutar el comando para crear las backups de la bd
parent 987d0f56
ADDRESS_SSH_SOPORTE='192.168.2.91'
USERNAME_SSH_SOPORTE='administrador'
PASSWORD_SSH_SOPORTE='_RW!2k19'
DB_USER_SOPORTE = 'soporte'
DB_PASSWORD_SOPORTE = '_RW!2k14'
DB_NAME_SOPORTE = 'soporte'
venv
.vscode
__pycache__/
## Soporte Backups DB
- Este proyecto está pensado ralizar copias de la base de datos de ubuntu.soporte(192.168.2.91) sean almacenadas en un lugar externo a dicha máquina con la finalidad de que no ocupe espacio en la máquina.
- El proceso que se realiza es básicamente la descarga de la copia de seguridad que se realiza en la máquina de soporte que es realizada por un crontab, dicha copia se descarga en la carpeta de backups del proyecto, posteriormente se sube a Pcloud.
\ No newline at end of file
from env import getenv
import subprocess
from datetime import datetime
def create_backup_database_soporte():
"""
Genera una copia de la base de datos de soporte y la guarda en la carpeta backups
"""
print('entra')
now = datetime.now()
host = getenv('ADDRESS_SSH_SOPORTE')
user = getenv('DB_USER_SOPORTE')
database = getenv('DB_NAME_SOPORTE')
pwd = getenv('DB_PASSWORD_SOPORTE')
command = ["mysqldump",f'-h{host}',f'-u{user}', f'-p{pwd}', f'{database}']
print('Empezando proceso de copia de seguridad de la base de datos de soporte')
# Ejecutar el comando mysqldump y guardar el resultado en un archivo
path_save_backups = f'/home/rentel/soporte-backup-db/backups/db_soporte_{now}.sql'
with open(f'{path_save_backups}', 'w') as f:
subprocess.run(command, stdout=f)
print('Finalizada copia base de datos soportes')
import os
from dotenv import load_dotenv
load_dotenv()
def getenv(param: str) -> None:
"""
Métodoi de acceso a variables de entorno.
Args:
param (str): clave del valor.
"""
return os.getenv(param)
\ No newline at end of file
certifi==2022.12.7
charset-normalizer==3.1.0
idna==3.4
pcloud==1.1
pkg-resources==0.0.0
requests==2.28.2
requests-toolbelt==0.10.1
urllib3==1.26.15
python-dotenv==0.21.0
from create_backup_db_soporte import create_backup_database_soporte
from upload_pcloud_backup import upload_solo_pcloud_sp
if __name__ == '__main__':
#Crea copia de seguridad y lo almacena en la carpeta backups
create_backup_database_soporte()
#Sube a Pcloud la backups
upload_solo_pcloud_sp()
\ No newline at end of file
from create_backup_db_soporte import create_backup_database_soporte
from upload_pcloud_backup import upload_solo_pcloud_sp
if __name__ == '__main__':
#Crea copia de seguridad y lo almacena en la carpeta backups
create_backup_database_soporte()
#Sube a Pcloud la backups
upload_solo_pcloud_sp(True)
\ No newline at end of file
import pathlib
import os
from pcloud import PyCloud
from os import remove
def upload_solo_pcloud_sp(hyperV : bool = False):
"""
Subida de la backup almacenada en la carpeta Backup a Pcloud
"""
#Compruebo si el fichero esta descargado, si esta descargado inicio la subida a pcloud
directorio = pathlib.Path('soporte-backup-db/backups').absolute()
with os.scandir(directorio) as ficheros:
ficheros = [fichero.path for fichero in ficheros if fichero.is_file(
)]
if ficheros:
pc = PyCloud('informatica@rentelwifi.com', '_RW!2k14', endpoint="eapi")
pc.listfolder(folderid=0)
if hyperV:
pc.uploadfile(files=ficheros, path='/Backup/Hyper-V/Soporte')
else:
pc.uploadfile(files=ficheros, path='/Backup/Soporte')
print(ficheros)
for fichero in ficheros: # Borramos ficheros de la carpeta backups
remove(fichero)
print('Subido a Pcloud')
else:
print("Fichero inexistente en la carpeta backups")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment