monashee / backup
Laravel MySQL 备份工具,并上传到 AWS S3。
Requires
- php: >=5.4.0
- aws/aws-sdk-php-laravel: 1.*
- illuminate/support: 4.2.*
- laravel/framework: 4.2.*
- league/flysystem: 0.5.*
- phpspec/phpspec: ~2.0
This package is not auto-updated.
Last update: 2024-09-24 02:37:13 UTC
README
A simple Laravel artisan utility to backup MySQL database to AWS S3 bucket.
我通过创建一个备份 mysql 用户,并将该用户附加到所有要备份的数据库上来使用它。在多数据库环境中,它使得只选择处于生产状态的数据库变得更容易。
它保存到一个临时文件夹中,然后在上传到 AWS S3 后删除 $database.sql.gz 文件。
它还会清理 S3 文件夹,删除两个月前的每日备份,但保留每月的第一份备份。
事件
MonasheeBackupSuccess
在完成时触发,并传递 $databases 数组
MonasheeBackupFail
在异常时触发,并传递 $e->getTraceAsString()
安装
要求
- PHP 5.4+
- Laravel 4.2+
通过 Composer 安装,将以下行添加到 composer.json 文件的 require 块中
"monashee/backup": "dev-master"
然后运行 composer update
将此行添加到 app/config/app.php
文件中的 providers 数组中
'Monashee\Backup\BackupServiceProvider',
配置
在您的根目录中创建或编辑 .env.php
文件。复制配置设置并编辑字段。
<?php return [ 'BACKUP_MYSQL_HOST' => 'host', 'BACKUP_MYSQL_USER' => 'user', 'BACKUP_MYSQL_PASSWORD' => 'password', 'BACKUP_MYSQLDUMP_PATH' => '/usr/bin/mysqldump', 'BACKUP_AWS_KEY' => 'key', 'BACKUP_AWS_SECRET' => 'secret', 'BACKUP_S3_BUCKET' => 'bucket', 'BACKUP_S3_REGION' => 'us-west-2', 'BACKUP_STORAGE_PATH' => 'monashee/backup/' ];
AWS S3 区域 http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
使用方法
php artisan monashee:backup
在控制台测试以确保没有错误。我发现创建一个名为 backup 的 MySQL 用户并将其添加到所有要备份的数据库中更容易。
设置 cron 作业以在需要时触发命令。
注意
它使用 mysqldump 命令创建备份。 更多信息 mysqldump
mysqldump 至少需要 SELECT 权限来导出表,SHOW VIEW 来导出视图,TRIGGER 来导出触发器,以及 LOCK TABLES(如果未使用 --single-transaction 选项)。某些选项可能需要其他权限,如选项描述中所述。
要重新加载转储文件,您必须具有通过手动发出 CREATE 语句创建每个导出对象所需的相同权限。
\Monashee\Backup\Dump.php 有 mysqldump 选项