jeffgepiga/dbfilebackup

laravel 包,用于备份/恢复文件和数据库。

dev-main 2023-11-21 05:44 UTC

This package is auto-updated.

Last update: 2024-09-21 07:15:21 UTC


README

Latest Version on Packagist Total Downloads

Laravel BackupManager

简单的laravel包,用于备份/恢复文件和数据库。

截图

Main Window

需求

  • 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%验证。因此,请自行承担使用此包的风险。

鸣谢

许可证

有关更多信息,请参阅许可证文件