Advertisement
Guest User

Untitled

a guest
Feb 21st, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.20 KB | None | 0 0
  1. #-*-coding: utf-8-*-
  2.  
  3. import os
  4. import string
  5. from os.path import getsize
  6. from time import gmtime, strftime
  7. import subprocess
  8. from dropbox import client, rest, session
  9.  
  10. import const
  11. APP_KEY = const.KEY
  12. APP_SECRET = const.SECRET
  13.  
  14.  
  15. ACCESS_TYPE = 'app_folder'
  16. sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)
  17.  
  18. oauth_token = ''
  19. oauth_token_secret = ''
  20.  
  21. f = open("dropbox_token.txt",'r')
  22. if f:
  23.   oauth_token = string.strip(f.readline())
  24.   oauth_token_secret = string.strip(f.readline())
  25.   f.close()
  26.  
  27. if oauth_token == '' or oauth_token_secret == '':
  28.   request_token = sess.obtain_request_token()
  29.  
  30.   url = sess.build_authorize_url(request_token)
  31.   print "url:", url
  32.   print "Please visit this website and press the 'Allow' button, then hit 'Enter' here."
  33.   raw_input()
  34.   access_token = sess.obtain_access_token(request_token)
  35.   f = open("dropbox_token.txt","wb")
  36.   f.write(access_token.key + '\n')
  37.   f.write(access_token.secret)
  38.   f.close()
  39. else:
  40.   sess.set_token(oauth_token, oauth_token_secret)
  41.  
  42. client = client.DropboxClient(sess)
  43.  
  44. USER = const.USER
  45. PASS = const.PASS
  46. HOST = const.HOST
  47.  
  48. BACKUP_DIR = const.backup
  49. dumper = """ pg_dump -U %s -Z 9 -f %s  -F c %s -h %s  """                  
  50.  
  51. def log(string):
  52.     print strftime("%Y-%m-%d-%H-%M-%S", gmtime()) + ": " + str(string)
  53.  
  54. os.putenv('PGPASSWORD', PASS)
  55. database_list = [const.dbname]
  56.  
  57. for database_name in database_list :
  58.     log("dump started for %s" % database_name)
  59.     thetime = str(strftime("%Y-%m-%d-%H-%M"))
  60.     file_name = database_name + '_' + thetime + ".sql.pgdump"
  61.     command = dumper % (USER,  BACKUP_DIR + file_name, database_name, HOST)
  62.     #log(command)
  63.     subprocess.call(command,shell = True)
  64.     log("%s dump finished" % database_name)
  65.  
  66. log("Backup job complete.")
  67.  
  68.  
  69. f = open(file_name,'rb')
  70. if f:
  71.   fsize = getsize(file_name)
  72.   uploader = client.get_chunked_uploader(f, fsize)
  73.   print "Uploading file", fsize, "bytes..."
  74.   while uploader.offset < fsize:
  75.     try:
  76.       upload = uploader.upload_chunked()
  77.       print "."
  78.     except rest.ErrorResponse, e:
  79.       print "error uploading file!"
  80.   uploader.finish("/"+file_name)
  81.   f.close()
  82.   print "File uploaded successfully."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement