Example #1
0
def backupDbAuto(dbName, targetDir, password, user, timeStamp):
    finalRes = []
    if user is None:
        dbSysInst = dbSys.dbSysSmart()
    else:
        dbSysInst = dbSys.dbSysSmart(sessionBase.sessionInstanceBase(user))
    beforeTimeStamp = dbSysInst.getTimeStamp()
        
    if dbName is None:
        dbList = dbSysInst.getDbNameList()
    else:
        dbList = [dbName]
    for i in dbList:
        print i
        
        res = backupDbSingle(i, targetDir, password, user, timeStamp, beforeTimeStamp)
        finalRes.extend(res)
    #res = dictListEncryptor(res, password)
    #res = dictListDecryptor(res)
    s = json.dumps(finalRes, sort_keys=True, indent=4)
    #s = json.dumps(finalRes)
    f = open(os.path.join(targetDir, str(dbName)+'_for_user_'+str(user)+'.json'),'w')
    f.write(s)
    f.close()
    dbSysInst = dbSys.dbSysSmart()
    c = cfg.configuration(dbSysInst)
    c[u"mongoBackupTimeStamp"] = beforeTimeStamp
Example #2
0
def backupDbSingle(dbName, targetDir, password, user):
    if user is None:
        dbSysInst = dbSys.dbSysSmart()
    else:
        dbSysInst = dbSys.dbSysSmart(sessionBase.sessionInstanceBase(user))
        

    db = dbSysInst.getDb(dbName)
    res = []
    e = enc.encryptor()
    if not os.path.exists(targetDir):
        misc.ensureDir(targetDir)
    for i in db.keys():
        #print i
        #values = db.testFunc(i)
        values = db[i]
        encryptedValues = []
        for i in values:
            print i.encode('gbk', 'replace')
            encryptedValues.append(e.en(i, password))
        j = {"key":e.en(i, password), "value":encryptedValues,
            "encHash":unicode(md5.new(password).hexdigest())}

        res.append(j)
        
    #print res
    s = json.dumps(res, sort_keys=True, indent=4)
    f = open(os.path.join(targetDir, dbName+'_for_user_'+str(user)+'.json'),'w')
    f.write(s)
    f.close()
Example #3
0
def backupDbAuto(dbName, targetDir, password, user):
    if user is None:
        dbSysInst = dbSys.dbSysSmart()
    else:
        dbSysInst = dbSys.dbSysSmart(sessionBase.sessionInstanceBase(user))
        
    if dbName is None:
        for i in dbSysInst.getDbNameList():
            print i
            backupDbSingle(i, targetDir, password, user)
    else:
        backupDbSingle(dbName, targetDir, password, user)
Example #4
0
def main():
    parser = OptionParser()
    parser.add_option("-u", "--user", action="store",help="username for the database system",default = None)
    parser.add_option("-p", "--password", action="store",help="password for target output",default = u'defaultPASS123')
    parser.add_option("-t", "--targetDir", action="store", help="database backup target directory",default = 'd:/tmp/backup')
    parser.add_option("-n", "--name", action="store", help="database name for backup",default = None)
    parser.add_option("-s", "--show", action="store", help="print time stamp of last backup",default = None)
    parser.add_option("-r", "--reset", action="store", help="reset backup timestamp",default = None)
    
    
    
    (options, args) = parser.parse_args()
    dbSysInst = dbSys.dbSysSmart()
    c = cfg.configuration(dbSysInst)
    
    if not (options.reset is None):
        del c[u"mongoBackupTimeStamp"]
        return
    
    if not c.has_key(u"mongoBackupTimeStamp"):
        t = None
    else:
        t = c[u"mongoBackupTimeStamp"]
    
    
    if not (options.show is None):
        print c[u"mongoBackupTimeStamp"]
        return
    #print options,args
    #tv = comparer.getMecacoreVector(options.case,options.tf,options.blk,options.point,options.ant)
    backupDbAuto(options.name, options.targetDir, options.password, options.user, t)
Example #5
0
def backupDbSingle(dbName, targetDir, password, user, afterTimeStamp, beforeTimeStamp):
    if user is None:
        dbSysInst = dbSys.dbSysSmart()
    else:
        dbSysInst = dbSys.dbSysSmart(sessionBase.sessionInstanceBase(user))
        

    db = dbSysInst.getDb(dbName)
    res = []

    if not os.path.exists(targetDir):
        misc.ensureDir(targetDir)
    for i in db.keysDuring(afterTimeStamp, beforeTimeStamp):
        #print i
        #values = db.testFunc(i)
        values = db[i]
        j = {"db": dbName, "user": user, "key":i, "value":values, "t": beforeTimeStamp}
        res.append(j)
        
    return res
Example #6
0
def importDb(input, password = None):
    dbSysInst = dbSys.dbSysSmart()
    sf = open(input, 'r')
    package = json.load(sf)
    en = enc.encryptorBase64Out(password)
    l = package["add"]
    if (password is None) and package.has_key("encPass"):
        print 'need password for importing'
        return
    if (not (password is None)):
        if unicode(str(md5.new(password).hexdigest())) != package["encPass"]:
            print 'pass not match:', unicode(str(md5.new(password+package["time-duration"]).hexdigest())), package["encPass"]
            return
        else:
            l = listEncryptor.dictListDecryptor(l, en)
    l = listEncryptor.dictListEncryptor(l)
    dbSysInst.importDb(l)