当前位置: 首页 > 后端技术 > PHP

Laravel任务调度实战数据库备份

时间:2023-03-29 16:47:52 PHP

我们需要每分钟备份一次数据库。开始吧。创建命令文件phpartisanmake:commanBackupDatabase打开刚创建的文件,并修改为以下内容:process=newProcess(sprintf('mysqldump-u%s--password=%s%s>%s',config('database.connections.mysql.username'),config('database.connections.mysql.password'),config('database.connections.mysql.database'),storage_path('backups/'.$file_name)));}/***执行控制台命令。**@returnmixed*/publicfunctionhandle(){try{$this->process->mustRun();$this->info('备份成功。');}catch(ProcessFailedException$exception){$this->error($exception);}}}配置在storage中创建backups文件夹的命令,打开app/Console/Kernel.php修改部分内容,如下protected$commands=[Commands\BackupDatabase::class,];protectedfunctionschedule(Schedule$schedule){$schedule->command('db:backup')->everyMinute();}}服务器配置进入服务器执行crontab-e如果是第一次打开crontab,会要求编辑这里可以使用vim(选择vim),我选择的是第三个,但是如果选错了,你可能会遇到一些麻烦,没有办法正常编辑,crontab-e。该怎么办?执行这个命令:select-editor(crontab的一个命令),可以让你重新选择。复制以下内容*****php/home/vagrant/code/laravel/artisanschedule:run>>/dev/null2>&1/home/vagrant/code/laravel/是项目目录,可以查看一分钟后存储查看/backups文件夹下是否有备份sql文件。