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())