def clean_old_backups(): storage = Storage() keep_delta = datetime.timedelta(hours=13) files = storage.list_backups() now = datetime.datetime.now() files = sorted(files, key=utils.filename_to_date, reverse=True) files_to_delete = [ fi for fi in files if (now - utils.filename_to_date(fi)) > keep_delta ] logger.info('Deleting {} files on {}. keep_delta={}'.format( len(files_to_delete), len(files), keep_delta)) for filename in files_to_delete: logger.info('Removing ' + filename) storage.delete_file(filename)
def check_status(self): storage = get_storage() backups = storage.list_backups(content_type=self.content_type) if not storage.storage.exists(""): self.add_error(_("The backup folder doesn't exist.")) return if backups: last_backup = backups[:1] last_backup_time = dbbackup_utils.filename_to_date(last_backup[0]) time_gone_since_backup = datetime.now() - last_backup_time # Check if backup is older than configured time if time_gone_since_backup.seconds > self.configured_seconds: self.add_error(_(f"Last backup {time_gone_since_backup}!")) else: self.add_error(_("No backup found!"))
def test_generated_filename(self): filename = utils.filename_generate('bak', 'default') datestring = utils.filename_to_date(filename)
def test_func(self): now = datetime.now() datefmt = dbbackup_settings.DATE_FORMAT filename = '%s-foo.gz.gpg' % datetime.strftime(now, datefmt) date = utils.filename_to_date(filename, datefmt) self.assertEqual(date.timetuple()[:5], now.timetuple()[:5])
def test_func(self): now = datetime.now() datefmt = settings.DATE_FORMAT filename = '%s-foo.gz.gpg' % datetime.strftime(now, datefmt) date = utils.filename_to_date(filename, datefmt) self.assertEqual(date.timetuple()[:5], now.timetuple()[:5])
def test_generated_filename(self): filename = utils.filename_generate("bak", "default") datestring = utils.filename_to_date(filename)
def keep_only_even_files(filename): from dbbackup.utils import filename_to_date return filename_to_date(filename).day % 2 == 0