title | weight |
---|---|
Backups |
2 |
Using a package like spatie/laravel-backup you can create backups of your application. The backups are stored as zip files in a directory.
The BackupCheck
will verify if your backups are up to date. It can check:
- if the youngest backup has been made before a certain date
- if the oldest backup was made after a certain date
- the number of backups
- the size of the backups
Here's how you can register the check.
You can use the locatedAt
method to specify the directory where the backups are stored. The locatedAt
method accepts a glob pattern.
use Spatie\Health\Facades\Health;
use Spatie\Health\Checks\Checks\BackupsCheck;
Health::checks([
BackupsCheck::new()->locatedAt('/path/to/backups/*.zip'),
]);
You can use the numberOfBackups
method to check if the number of backups is within a certain range.
The function accepts a min
and/or a max
parameter.
use Spatie\Health\Facades\Health;
use Spatie\Health\Checks\Checks\BackupsCheck;
Health::checks([
BackupsCheck::new()->locatedAt('/path/to/backups/*.zip')->numberOfBackups(min: 5, max: 10),
]);
You can use the youngestBackShouldHaveBeenMadeBefore
method to check if the youngest backup was made before a certain date.
Here's an example where we make sure the most recent backup is not older than 1 day.
use Spatie\Health\Facades\Health;
use Spatie\Health\Checks\Checks\BackupsCheck;
Health::checks([
BackupsCheck::new()
->locatedAt('/path/to/backups/*.zip')
->youngestBackShouldHaveBeenMadeBefore(now()->subDays(1)),
]);
You can use the oldestBackShouldHaveBeenMadeAfter
method to check if the oldest backup was made after a certain date.
Here's an example where we make sure the oldest backup is older than 1 week.
use Spatie\Health\Facades\Health;
use Spatie\Health\Checks\Checks\BackupsCheck;
Health::checks([
BackupsCheck::new()
->locatedAt('/path/to/backups/*.zip')
->oldestBackShouldHaveBeenMadeAfter(now()->subWeeks(1)),
]);
You can use the atLeastSizeInMb
method to specify a minimum size for the backups. Only backups that are larger than the specified size will be considered valid.
use Spatie\Health\Facades\Health;
use Spatie\Health\Checks\Checks\BackupsCheck;
Health::checks([
BackupsCheck::new()
->locatedAt('/path/to/backups/*.zip')
->atLeastSizeInMb(20),
]);