python backup for mongo, mysql, FactorRH

app.py 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import os
  2. import time
  3. import datetime
  4. import pipes
  5. import ftplib
  6. from subprocess import Popen, PIPE
  7. # DB_LIST = ['BDECR', 'BDEDO', 'BDEGT', 'BDEHN', 'BDENI', 'BDEPA', 'BDESV'] DB_LIST = ['BDALPHAGT']
  8. DB_LIST = ['BDEDO']
  9. DB_USER = 'haproxy'
  10. DB_PASS = str(os.getenv('QAPASS'))
  11. DB_HOST = '159.203.104.215'
  12. BACKUP_PATH = '/backup/'
  13. def PutOverSSH(path = '/home/ming/CODE/PyKup/backup/BDEDO-20082021-1145.sql', remote='mingmecca.sql'):
  14. ftp = ftplib.FTP("165.227.114.190")
  15. ftp.login("factor", 'rh$2021')
  16. ftp.cwd('upload')
  17. with open(path, "rb") as file:
  18. ftp.storbinary('STOR %s' % remote, file)
  19. def Backup():
  20. BACKUP_PATH = 'backup/'
  21. DATETIME = time.strftime('%d%m%d-%H%M')
  22. for DB_NAME in DB_LIST:
  23. DATETIME = time.strftime('%d%m%Y-%H%M')
  24. FILE_NAME = BACKUP_PATH + f'{DB_NAME}-' + DATETIME + '.sql'
  25. try:
  26. os.stat(BACKUP_PATH)
  27. except:
  28. os.mkdir(BACKUP_PATH)
  29. params = ' --routines --quick --compress --skip-lock-tables --verbose '
  30. command = "mysqldump -h " + DB_HOST + " -u " + DB_USER + " -p" + DB_PASS + " " + DB_NAME + params + " > " + FILE_NAME
  31. with Popen(command, stdout=PIPE, stderr=None, shell=True) as process:
  32. output = process.communicate()[0].decode("utf-8")
  33. print(output)
  34. # Backup()
  35. PutOverSSH()