Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #-*-coding: utf-8-*-
- import os
- import string
- from os.path import getsize
- from time import gmtime, strftime
- import subprocess
- from dropbox import client, rest, session
- import const
- APP_KEY = const.KEY
- APP_SECRET = const.SECRET
- ACCESS_TYPE = 'app_folder'
- sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)
- oauth_token = ''
- oauth_token_secret = ''
- f = open("dropbox_token.txt",'r')
- if f:
- oauth_token = string.strip(f.readline())
- oauth_token_secret = string.strip(f.readline())
- f.close()
- if oauth_token == '' or oauth_token_secret == '':
- request_token = sess.obtain_request_token()
- url = sess.build_authorize_url(request_token)
- print "url:", url
- print "Please visit this website and press the 'Allow' button, then hit 'Enter' here."
- raw_input()
- access_token = sess.obtain_access_token(request_token)
- f = open("dropbox_token.txt","wb")
- f.write(access_token.key + '\n')
- f.write(access_token.secret)
- f.close()
- else:
- sess.set_token(oauth_token, oauth_token_secret)
- client = client.DropboxClient(sess)
- USER = const.USER
- PASS = const.PASS
- HOST = const.HOST
- BACKUP_DIR = const.backup
- dumper = """ pg_dump -U %s -Z 9 -f %s -F c %s -h %s """
- def log(string):
- print strftime("%Y-%m-%d-%H-%M-%S", gmtime()) + ": " + str(string)
- os.putenv('PGPASSWORD', PASS)
- database_list = [const.dbname]
- for database_name in database_list :
- log("dump started for %s" % database_name)
- thetime = str(strftime("%Y-%m-%d-%H-%M"))
- file_name = database_name + '_' + thetime + ".sql.pgdump"
- command = dumper % (USER, BACKUP_DIR + file_name, database_name, HOST)
- #log(command)
- subprocess.call(command,shell = True)
- log("%s dump finished" % database_name)
- log("Backup job complete.")
- f = open(file_name,'rb')
- if f:
- fsize = getsize(file_name)
- uploader = client.get_chunked_uploader(f, fsize)
- print "Uploading file", fsize, "bytes..."
- while uploader.offset < fsize:
- try:
- upload = uploader.upload_chunked()
- print "."
- except rest.ErrorResponse, e:
- print "error uploading file!"
- uploader.finish("/"+file_name)
- f.close()
- print "File uploaded successfully."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement