Пример #1
0
	def _get_backup_list(self, job=None):
		"""Get a list of backup jobs and execute the specific job every 
		given interval."""
		# sync list
		self.sync_file = os.path.join(self.conf_dir, 'sync')
		self.sync_list = ConfigParser.ConfigParser()
		self.sync_list.read(self.sync_file)
		
		# fallback to one single job
		if job:
			jobs = [job, ]
		else:
			jobs = self.job_list.sections()
		
		for job in jobs:
			interval = self.job_list.getint(job, 'interval')
			job_dict = self._get_job_dict(job)
			job_dict['name'] = job
						
			try:
				ls = parse(self.sync_list.get(job, 'last_sync'))
				
				# job is in interval range and is not currently running
				if (datetime.datetime.now() - ls) > \
					datetime.timedelta(0, interval, 0) \
					and lbs != 1:
					logging.info('[%s] Starting backup process' % job)
					backup = Backup(job_dict, self.db)
					backup.backup()
					self._set_sync_option(
						job, 'last_sync', datetime.datetime.now()
					)
			except:
				logging.info('[%s] Starting backup process' % job)
				if not self.sync_list.has_section(job):
					self.sync_list.add_section(job)
				backup = Backup(job_dict, self.db)
				backup.backup()
				self._set_sync_option(job, 'last_sync', datetime.datetime.now())