资讯专栏INFORMATION COLUMN

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

周国辉 / 1694人阅读

摘要:我们要一分钟备份一次数据库。但是如果你选错了,就可能会遇到点麻烦,没有办法正常编辑,。怎么办执行这个命令针对的一个命令,可以让你重新选一次。复制如下内容是项目的目录一分钟后可以检查文件夹内是否有生成备份的文件。

我们要一分钟备份一次数据库。让我们开始吧。

创建命令文件
php artisan make:comman BackupDatabase

打开刚刚创建的文件,并修改为以下内容:

process = new Process(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)
        ));
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        try {
            $this->process->mustRun();

            $this->info("The backup has been proceed successfully.");
        } catch (ProcessFailedException $exception) {
            $this->error($exception);
        }
    }
}
配置命令

在storage创建一个backups文件夹,打开app/Console/Kernel.php
修改部分内容,如下

protected $commands = [
       
        CommandsBackupDatabase::class,
    ];
protected function schedule(Schedule $schedule)
    {
        $schedule->command("db:backup")
            ->everyMinute();
    }
服务器配置

进入服务器 执行

crontab -e

如果是第一次打开crontab的话,会让你选择编辑器,这里(选vim)就可以了,我选的第三个。但是如果你选错了,就可能会遇到点麻烦,没有办法正常编辑,crontab -e。 怎么办?
执行这个命令:select-editor (针对crontab的一个命令), 可以让你重新选一次。
复制如下内容

* * * * * php /home/vagrant/code/laravel/artisan schedule:run >> /dev/null 2>&1

/home/vagrant/code/laravel/ 是项目的目录
一分钟后可以检查storage/backups文件夹内是否有生成备份的sql文件。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30023.html

相关文章

  • 创业初期据库备份laravel解决方案

    摘要:在中注册发布之后,我们会产生一个监听器,文件已经存储在本地,获取该文件信息将文件上传至七牛云存入数据库上面的部分代码没写,大家可以去自己去试下,加深对七牛云及的理解,完全可以达到目的。 最近项目用户徒增,购买的服务器还是和公司另外一个项目共用的同一台服务器,想着要是服务器崩了,还没个容灾方案,万一。。。不得被用户整死 选用方案 laravel-backup 配合laravel的任务调...

    2bdenny 评论0 收藏0
  • 记一次PHP并发性能调优实战 -- 性能提升104%

    摘要:这是多处理器系统中,调度器用来分散任务到不同的机制,通常也被称为处理器间中断,。文章编写计划 待完成: 详细介绍用到的各个工具 作者: 万千钧(祝星) 适合阅读人群 文中的调优思路无论是php, java, 还是其他任何语言都是用. 如果你有php使用经验, 那肯定就更好了 业务背景 框架及相应环境 laravel5.7, mysql5.7, redis5, nginx1.15 cento...

    番茄西红柿 评论0 收藏0
  • 记一次PHP并发性能调优实战 -- 性能提升104%

    摘要:这是多处理器系统中,调度器用来分散任务到不同的机制,通常也被称为处理器间中断,。文章编写计划 待完成: 详细介绍用到的各个工具 作者: 万千钧(祝星) 适合阅读人群 文中的调优思路无论是php, java, 还是其他任何语言都是用. 如果你有php使用经验, 那肯定就更好了 业务背景 框架及相应环境 laravel5.7, mysql5.7, redis5, nginx1.15 cento...

    xeblog 评论0 收藏0
  • laravel package 推荐,数据备份

    摘要:为了项目的稳定性,我们通常会对项目的数据库进行备份,我之前采用是写的脚本进行备份,使用,发现个更佳好用的可以方便的对文件和数据库进行备份使用第一步这里面要注意如果不是和,那么第二步这样之后就可以在命令里面看到命令最基础的使用是更多命令 为了项目的稳定性,我们通常会对项目的数据库进行备份,我之前采用是写的脚本进行备份,使用laravel,发现个更佳好用的packagelaravel-ba...

    QiShare 评论0 收藏0
  • 如何设定一个定时任务

    摘要:定时任务在开发中是非常常见的一个需求,定时检测过期优惠券定时重启刷新缓存备份数据等等都可以用到定时任务。定义方式在下定义一个定时任务有两种方式,一个是直接修改文件,还有一个是通过命令来编辑任务文件。 定时任务在开发中是非常常见的一个需求,定时检测过期优惠券、定时重启、刷新缓存、备份数据等等都可以用到定时任务。在 Linux 上一般都是通过 crontab 来实现一个定时任务,这个是基于...

    muzhuyu 评论0 收藏0

发表评论

0条评论

周国辉

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<