Determining old backups | laravel-backup-server | Spatie

 SPATIE

  Laravel Backup Server
========================

spatie.be/open-source

  [Docs](https://spatie.be/docs)  [Laravel-backup-server](https://spatie.be/docs/laravel-backup-server/v2)  Cleaning-up-backups  Determining old backups

 Version   v4   v3   v2   v1

 Other versions for crawler [v4](https://spatie.be/docs/laravel-backup-server/v4) [v3](https://spatie.be/docs/laravel-backup-server/v3) [v2](https://spatie.be/docs/laravel-backup-server/v2) [v1](https://spatie.be/docs/laravel-backup-server/v1)

- [ Introduction ](https://spatie.be/docs/laravel-backup-server/v2/introduction)
- [ Getting a license ](https://spatie.be/docs/laravel-backup-server/v2/getting-a-license)
- [ Installation &amp; setup ](https://spatie.be/docs/laravel-backup-server/v2/installation-setup)
- [ Requirements ](https://spatie.be/docs/laravel-backup-server/v2/requirements)
- [ Upgrading ](https://spatie.be/docs/laravel-backup-server/v2/upgrading)
- [ Questions and issues ](https://spatie.be/docs/laravel-backup-server/v2/questions-issues)
- [ Changelog ](https://spatie.be/docs/laravel-backup-server/v2/changelog)
- [ About us ](https://spatie.be/docs/laravel-backup-server/v2/about-us)
- [ License ](https://spatie.be/docs/laravel-backup-server/v2/license)

Taking backups
--------------

- [ Creating a destination ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/creating-a-destination)
- [ Creating a source ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/creating-a-source)
- [ Taking backups ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/taking-backups)
- [ The backup process ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/the-backup-process)
- [ Events ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/events)
- [ Listing sources and destinations ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/listing-sources-and-destinations)
- [ Working with backups ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/working-with-backups)
- [ Creating database backups ](https://spatie.be/docs/laravel-backup-server/v2/taking-backups/creating-database-backups)

Cleaning up backups
-------------------

- [ The clean up process ](https://spatie.be/docs/laravel-backup-server/v2/cleaning-up-backups/the-cleanup-process)
- [ Determining old backups ](https://spatie.be/docs/laravel-backup-server/v2/cleaning-up-backups/determining-old-backups)
- [ Events ](https://spatie.be/docs/laravel-backup-server/v2/cleaning-up-backups/events)

Monitoring the health of all backups
------------------------------------

- [ The monitoring process ](https://spatie.be/docs/laravel-backup-server/v2/monitoring-the-health-of-all-backups/the-monitoring-process)
- [ Checking health of sources ](https://spatie.be/docs/laravel-backup-server/v2/monitoring-the-health-of-all-backups/checking-health-of-sources)
- [ Checking health of destinations ](https://spatie.be/docs/laravel-backup-server/v2/monitoring-the-health-of-all-backups/checking-health-of-destinations)
- [ Events ](https://spatie.be/docs/laravel-backup-server/v2/monitoring-the-health-of-all-backups/events)

Sending notifications
---------------------

- [ Sending notifications ](https://spatie.be/docs/laravel-backup-server/v2/sending-notifications/sending-notifications)
- [ Adding extra notification channels ](https://spatie.be/docs/laravel-backup-server/v2/sending-notifications/adding-extra-notification-channels)
- [ Customizing the notifiable ](https://spatie.be/docs/laravel-backup-server/v2/sending-notifications/customizing-the-notifiable)

      You are viewing the documentation for **an older version** of this package. You can check the version you are using with the following command:

 `                                    composer show spatie/laravel-backup-server                                                                                                                                                                                                                                    `

Determining old backups
=======================

As part of [the cleanup process](/docs/laravel-backup-server/v1/cleaning-up-backups/the-cleanup-process), old backups will be deleted. But how does the package determine whether a backup is "old".

This package provides an opinionated method to determine which old backups should be deleted. We call this the `DefaultStrategy`. This is how it works.

- Rule #1: it will never delete the latest backup regardless of its size or age
- Rule #2: it will keep all backups for the number of days specified in `keep_all_backups_for_days`
- Rule #3: it will only keep daily backups for the number of days specified in `keep_daily_backups_for_days` for all backups older than those covered by rule #2
- Rule #4: it will only keep weekly backups for the number of months specified in `keep_weekly_backups_for_weeks` for all backups older than those covered by rule #3
- Rule #5: it will only keep weekly backups for the number of months specified in `keep_monthly_backups_for_months` for all backups older than those covered by rule #4
- Rule #6: it'll only keep yearly backups for the number of years specified in `keep_yearly_backups_for_years` for all backups older than those covered by rule #5
- Rule #7: it will start deleting old backups until the volume of storage used is lower than the amount specified in `delete_oldest_backups_when_using_more_megabytes_than`.

Those `keep-*` and `delete_oldest_backups_when_using_more_megabytes_than` attributes are present on the source and on the destination of backup and in the `cleanup.default_strategy` key of the `backup-server` config file.

First, cleanup process will try if the attribute is filled on the source, if not, it will look on the destination. When it's not filled in the destination it will use the value in the config file.
