jeffgepiga / dbfilebackup
laravel 包,用于备份/恢复文件和数据库。
Requires
- illuminate/support: ~5|~6|~7|~8|~9|~10
This package is auto-updated.
Last update: 2024-09-21 07:15:21 UTC
README
Laravel BackupManager
简单的laravel包,用于备份/恢复文件和数据库。
截图
需求
- PHP >= 7.4
- Laravel 8-10
mysql
(用于恢复数据库)mysqldump
(用于备份数据库)tar
(用于备份/恢复文件)zcat
(用于解压数据库归档)
请确保上述二进制文件已添加到 PATH
环境变量中,或者您可以在配置文件中指定它们的完整路径。
安装
通过 Composer
$ composer require jeffgepiga/dbfilebackup
运行以下命令发布包的文件
$ php artisan vendor:publish --provider="JeffGepiga\BackupManager\ServiceProvider"
它应该发布 config/backupmanager.php.php
配置文件和迁移文件。
运行 php artisan migrate
创建备份验证器(verifybackup
)表。
最后,在 config/backupmanager.php
文件中设置选项,并在您在 route
选项中指定的 URL 打开备份管理器,例如 http//yourapp.com/backupmanager
,您现在应该看到备份管理器的界面。
有关备份设置的更多信息,请参阅 config/backupmanager.php
文件。
设置自动备份
要设置自动备份,请在 app/Console/Kernel.php
文件中放置以下内容
$schedule->command('backupmanager:create')->daily();
尽管包提供了用于管理备份的GUI界面,但以下命令也是可用的
backupmanager:create Creates backup of files and/or database. backupmanager:list Shows list of backups taken. backupmanager:restore Restores a backup already taken. backupmanager:create --only="db" Creates backup of database only. backupmanager:create --only="files" Creates backup of files only.
将备份保存到其他磁盘
默认情况下,此包将备份保存到 local
磁盘,但您也可以使用laravel文件系统的内置功能将备份保存到其他磁盘。假设您要将备份上传到另一个服务器,您具有ftp凭据,您需要将那些ftp凭据更新到laravel的 config/filesystems.php
文件中的 ftp
磁盘设置下。一旦完成,在备份管理器配置文件(config/backupmanager.php
)中指定您的磁盘为 ftp
而不是 local
,例如
// define disk options
'disk' => 'ftp',
代替
'disk' => 'local',
现在备份文件将保存在您的ftp位置而不是本地。
如何验证恢复
尽管没有100%的验证恢复的方法,但我们通过在恢复前后将一些内容放入 backup-verify
文件来创建和验证恢复功能,从而为 文件 创建和验证恢复功能。同样,我们在恢复前后将一些内容放入 verifybackup
表中来验证 数据库 恢复。在这两种情况下,该文件和数据库表的内容在备份和恢复时是不同的。
免责声明
此包是为我们的需求创建的,对我们有效,但不对其实用性提供保证,特别是恢复功能,由于恢复功能的工作方式,无法100%验证。因此,请自行承担使用此包的风险。
鸣谢
许可证
有关更多信息,请参阅许可证文件。