Advertisement
Guest User

Untitled

a guest
May 30th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. #!/usr/bin/env python
  2. import os
  3. import time
  4. import pysftp
  5. import sys
  6.  
  7. #BD Config
  8. username = 'postgres_username'
  9. defaultdb = 'postgres'
  10. port = '5432'
  11.  
  12. #SFTP Config
  13. sftp_host="remote_host"
  14. sftp_username="remote_user"
  15. sftp_password="pass"
  16.  
  17. #Folder Config
  18. backupfolder='/var/www/backup_pgsql/'
  19.  
  20. # Making the backup folder
  21. date = time.strftime('%d%m%Y_%H%M%S')
  22. backupdir=backupfolder + date
  23. if not os.path.exists(backupdir):
  24. os.mkdir(backupdir)
  25.  
  26. # Locate all databases
  27. get_db_names="psql -U%s -d%s -p%s --tuples-only -c '\l' | awk -F\| '{ print $1 }' | grep -E -v '( | |template0|template1|^$)'" % (username, defaultdb, port)
  28. print "Obteniendo Bases de Datos"
  29. print get_db_names
  30.  
  31. # Making Backup of all databases
  32. filename_system = "%s/system_%s.sql.gz" % (backupdir, date)
  33. pg_dumpall="pg_dumpall -p%s | gzip -9 -c > %s" % (port, filename_system)
  34. print "Haciendo Backup del Sistema Completo"
  35. print pg_dumpall
  36. os.popen(pg_dumpall)
  37. print "Haciendo el Backup por BD"
  38.  
  39. # Making Backup for BD
  40. for base in os.popen(get_db_names).readlines():
  41. base = base.strip()
  42. fulldir = backupdir + "/" + base
  43. if not os.path.exists(fulldir):
  44. os.mkdir(fulldir)
  45. filename = "%s/%s-%s.sql.gz" % (fulldir, base, date)
  46. print base
  47. pg_dump = "nice -n 19 pg_dump -C -F c -U%s -p%s %s | gzip > %s" % (username, port, base, filename)
  48. os.popen(pg_dump)
  49. print pg_dump
  50.  
  51. # Compresing
  52. comprimir = "cd %s && tar -czvf backup_pg_%s.tar.gz *" % (backupdir, date)
  53. print "Comprimiendo Archivos"
  54. print comprimir
  55. os.system(comprimir)
  56.  
  57. # Sending to SFTP Server
  58. remote_file = "%s/backup_pg_%s.tar.gz" % (backupdir, date)
  59. srv = pysftp.Connection(host=sftp_host, username=sftp_username, password=sftp_password)
  60. print "Enviando al servidor: " + sftp_host
  61. print remote_file
  62. srv.put(remote_file)
  63. srv.close()
  64. print "Listo!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement