import os import time import datetime import pipes import ftplib from subprocess import Popen, PIPE # DB_LIST = ['BDECR', 'BDEDO', 'BDEGT', 'BDEHN', 'BDENI', 'BDEPA', 'BDESV'] DB_LIST = ['BDALPHAGT'] DB_LIST = ['BDEDO'] DB_USER = 'haproxy' DB_PASS = str(os.getenv('QAPASS')) DB_HOST = '159.203.104.215' BACKUP_PATH = '/backup/' def PutOverSSH(path = '/home/ming/CODE/PyKup/backup/BDEDO-20082021-1145.sql', remote='mingmecca.sql'): ftp = ftplib.FTP("165.227.114.190") ftp.login("factor", 'rh$2021') ftp.cwd('upload') with open(path, "rb") as file: ftp.storbinary('STOR %s' % remote, file) def Backup(): BACKUP_PATH = 'backup/' DATETIME = time.strftime('%d%m%d-%H%M') for DB_NAME in DB_LIST: DATETIME = time.strftime('%d%m%Y-%H%M') FILE_NAME = BACKUP_PATH + f'{DB_NAME}-' + DATETIME + '.sql' try: os.stat(BACKUP_PATH) except: os.mkdir(BACKUP_PATH) params = ' --routines --quick --compress --skip-lock-tables --verbose ' command = "mysqldump -h " + DB_HOST + " -u " + DB_USER + " -p" + DB_PASS + " " + DB_NAME + params + " > " + FILE_NAME with Popen(command, stdout=PIPE, stderr=None, shell=True) as process: output = process.communicate()[0].decode("utf-8") print(output) # Backup() PutOverSSH()