Laravel定時(shí)任務(wù)備份數(shù)據(jù)庫

結(jié)合Laravel特性,通過使用 artisan 命令進(jìn)行封裝,在定時(shí)任務(wù)中,做到非常方便的數(shù)據(jù)庫備份

備份命令

php artisan make:comman命令來創(chuàng)建一個(gè)自定義命令

php artisan make:comman BackupDatabase

如下填寫app\Console\Commands\BackupDatabase.php

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Symfony\Component\Process\Process;
use Symfony\Component\Process\Exception\ProcessFailedException;

class BackupDatabase extends Command
{
    protected $signature = 'db:backup';

    protected $description = 'Backup the database';

    protected $process;

    public function __construct()
    {
        parent::__construct();

        $this->process = new Process(sprintf(
            'mysqldump -u%s -p%s %s > %s',
            config('database.connections.mysql.username'),
            config('database.connections.mysql.password'),
            config('database.connections.mysql.database'),
            storage_path('../../backup.sql') //生成到項(xiàng)目文件夾外
        ));
    }

    public function handle()
    {
        try {
            $this->process->mustRun();

            $this->info('The backup has been proceed successfully.');
        } catch (ProcessFailedException $exception) {
            $this->error('The backup process has been failed.');
        }
    }
}

定時(shí)腳本

定位Console/Kernel.php,commandsschedule如下添加

    protected $commands = [
        \App\Console\Commands\BackupDatabase::class
    ];

  
    protected function schedule(Schedule $schedule)
    {
        $schedule->command('db:backup')->twiceDaily(12, 24); //每天12點(diǎn)和24點(diǎn)執(zhí)行任務(wù)
    }

使用Cron定時(shí)調(diào)度

命令行

[root@localhost /]   crontab -e

添加如下代碼

* * * * * /usr/bin/php /www-data/xxxx/artisan schedule:run 1>> /dev/null 2>&1

查看已有的任務(wù)調(diào)度

[root@localhost /]  crontab -u root -l

over

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容