Esempio n. 1
0
    def start(self, srcPath, dstPath):
        _log.debug('src %s' % srcPath)
        _log.debug('dst %s' % dstPath)
        for dirname, dirnames, filenames in os.walk(srcPath):
            for filename in filenames:
                srcfile = os.path.join(dirname, filename)
                self.createBackup(srcfile, srcPath, dstPath)

            for subdirname in dirnames:
                srcfolder = os.path.join(dirname, subdirname)
                self.checkdst(srcfolder, srcPath, dstPath)
Esempio n. 2
0
def main():
    _log.debug('started backupsyncronization')
    if len(sys.argv) == 3:
        src = sys.argv[1]
        dst = sys.argv[2]
        BackupSync().start(src, dst)

    for pairSrcDst in conf.backupPair.pair:
        BackupSync().start(pairSrcDst[0], pairSrcDst[1])
        BackupSync().clearUnwanted(pairSrcDst[0], pairSrcDst[1])

    _log.debug('exiting backupsyncronization')
Esempio n. 3
0
 def createBackup(self, srcfile, srcPath, dstPath):
     dstfile = os.path.join(dstPath, srcfile.split(srcPath)[1][1:])
     if not os.path.exists(dstfile):
         _log.debug('creating file   >> dst %s' % dstfile)
         shutil.copy(srcfile, dstfile)
         modtime = os.path.getmtime(srcfile)
         database.Database().updateDb(srcfile, modtime)
         return
     modtime = os.path.getmtime(srcfile)
     if database.Database().isModified(srcfile, modtime):
         shutil.copy(srcfile, dstfile)
         database.Database().updateDb(srcfile, modtime)
Esempio n. 4
0
 def updateDb(self, filename, currentmodtime):
     con = lite.connect('backup.db')
     with con:
         cur = con.cursor()
         cur.execute(
             "select modtime from backuplist where name='%s'" % filename)
         modtime = cur.fetchone()
         if not modtime:
             _log.debug('DBAdd %s | %s | %s' %
                        (filename, modtime, currentmodtime))
             con.execute("insert into backuplist values ('%s','%s')" %
                         (filename, currentmodtime))
             con.commit()
             return
         if str(modtime[0]) == str(currentmodtime):
             return
         #print ('DbUpdate %s | %s | %s'%(filename, modtime, currentmodtime))
         _log.debug('DBUpdate %s | %s | %s' %
                    (filename, modtime, currentmodtime))
         con.execute("update backuplist set modtime = '%s' where name = '%s'" % (
             currentmodtime, filename))
         con.commit()
Esempio n. 5
0
 def checkDbAndCleanDst(self, dstfile, srcPath, dstPath):
     # since dstfile entry in DB is stored as srcfile
     srcfile = os.path.join(srcPath, dstfile.split(dstPath)[1][1:])
     if not database.Database().checkDB(srcfile):
         _log.debug('removing file %s' % dstfile)
         os.remove(dstfile)
Esempio n. 6
0
 def checkdst(self, srcfolder, srcPath, dstPath):
     dstfolder = os.path.join(dstPath, srcfolder.split(srcPath)[1][1:])
     if not os.path.exists(dstfolder):
         _log.debug('creating folder >> dst %s' % dstfolder)
         os.mkdir(dstfolder)