1.composer安装
$ composer require spatie/laravel-backup
2.设置providers
'providers' => [
// ....
Spatie\Backup\BackupServiceProvider::class,
]
3.发布配置文件
$ php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"
4.设置配置文件(config/backup.php)
配置文件中有几个地方我们需要讲解和设置一下
# 表示备份在storage/app/blog-backup文件夹下
'name' => 'blog-backup',
# 这些目录不备份,也就是vnedor和node_modules目录
'exclude' => [
base_path('vendor'),
base_path('node_modules'),
],
# 执行任务成功时,发送邮件(前提是要配置邮件发送服务),当你邮箱配置出错的时候,可能会备份不成功
'mail' => [
'to' => '3211028@qq.com',
],
5.测试
执行这段命令的时候,storage/app/blog-backup目录下回找到有一个对应备份时间的压缩包 db-dumps代表数据库备份,另一个文件夹代表代码备份
$ php artisan backup:run
6.设置定时任务
在Kernel.php中schedule方法增加如下代码 这里是每天1点清除备份(受到配置文件defaultStrategy数组制约), 2点备份
protected function schedule(Schedule $schedule)
{
//.....
// $schedule->command('inspire')
// ->hourly();
$schedule->command('backup:clean')->dailyAt('01:00');
$schedule->command('backup:run')->dailyAt('02:00');
}
7.新建cron.txt文件
# cd到项目根目录
# 将内容写入到cron.txt文件中
# 这里一定要将/path/to替换成自己的项目目录
$ echo '* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1' > cron.txt
8.启动定时
# 读取配置文件
$ crontab cron.txt
# 启动定时
$ crontab -l