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)
Exemple #2
0
    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])
Exemple #5
0
 def test_generated_filename(self):
     filename = utils.filename_generate('bak', 'default')
     datestring = utils.filename_to_date(filename)
Exemple #6
0
 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