tecactus/backap

MySQL数据库备份管理器

1.0.0 2016-08-23 01:51 UTC

This package is not auto-updated.

Last update: 2024-09-24 22:37:58 UTC


README

Backap是一个用PHP编写的MySQL数据库备份管理器,可以打包成PHAR文件。Backap旨在通过简单的CLI命令简化MySQL数据库的导出、恢复和同步过程。

如何开始使用?

您可以使用以下三种方式使用Backap:

作为Phar(推荐)

您可以从Backap的官方网站下载一个预编译的Phar版本

$ curl -LSs https://tecactus.github.io/backap/installer.php | php

该命令将检查您的PHP设置,警告您任何问题,并将其下载到当前目录。然后,您可以将其放置在任何易于访问的位置(例如/usr/local/bin),并更改权限为755。您甚至可以将其重命名为backap,以避免每次都必须键入.phar扩展名。

$ backap --version

每当应用程序发布新版本时,您只需运行update命令即可获取最新版本

$ backap update

作为全局Composer安装

当您以这种方式安装了其他工具(如phpunit)时,这可能是最好的方法

$ composer global require tecactus/backap --prefer-source

作为Composer依赖项

您还可以将Backap安装为Composer管理项目的依赖项

$ composer require --dev tecactus/backap

{
    "require-dev": {
        "tecactus/backap": "~1.0"
    }
}

安装应用程序后,您可以通过运行help命令来获取有关所有可用命令的详细信息。这应该是您获取有关如何使用Backap的信息的首选位置。

$ backap help

可用命令

init

init命令会在当前目录中创建一个名为.backap.yaml的yaml配置文件。

$ backap init

.backap.yaml文件结构如下

backap_storage_path(可选)

在此属性中,您可以定义所有使用Backap生成的备份文件将存储的路径。

如果定义了此路径,则此路径必须是绝对路径

backap_storage_path: /absolute/path/to/backups/folder

如果定义了任何路径或省略了此属性,Backap将在当前目录中创建一个storage/database文件夹。

mysqldump_path(可选)

在此属性中,您可以定义mysqldump的位置。

如果定义了此路径,则此路径必须是绝对路径

mysqldump_path: /path/to/mysqldump

如果定义了任何路径或省略了此属性,Backap将尝试调用全局引用的mysqldump

mysql_path(可选)

在此属性中,您可以定义mysql的位置。

如果定义了此路径,则此路径必须是绝对路径

mysql_path: /path/to/mysql

如果定义了任何路径或省略了此属性,Backap将尝试调用全局引用的mysql

timezone(可选)

在此属性中,您可以定义一个特定的时区,以知道备份文件是在何时生成的。

此时区必须有一个有效的名称。

例如

timezone: America/Lima

如果定义了任何时区或省略了此属性,Backap将使用UTC

enable_compression(可选)

Backap默认生成.sql文件,您可以通过启用压缩来告诉Backap压缩生成的备份文件,然后Backap将生成.sql.gz文件。

如果定义了此值,则此值必须是布尔值

enable_compression: true

如果定义了任何值或省略了此属性,Backap默认将压缩设置为false

default_connection(强制)

Backap需要知道您的哪个数据库连接将进行导出或恢复,这就是为什么您必须定义一个默认连接,以便在您没有明确指定时进行工作。

连接名称必须在connections数组属性中声明。

default_connection: myconnection

connections(强制)

Backap可以同时处理多个数据库连接,但首先您必须定义每个连接并为其分配不同的名称。

每个连接必须声明 *主机名、数据库名和用户名* 属性。端口和密码是可选的。

例如

connections:
  myconnection:
    hostname: 192.168.1.27
    port: 3306
    database: important_db
    username: userdb
    password: supersecretpassword

在示例中,我们定义了一个名为 myconnection 的连接。当然,您可以定义尽可能多的连接。

connections:

...

  myconnection:
    hostname: 192.168.1.27
    port: 3306
    database: important_db
    username: userdb
    
...

  otherconnection:
    hostname: 177.200.100.9
    port: 3306
    database: other_db
    username: admindb
    password: supersecretpassword
    
...

云(可选)

Backap 允许您将与云服务提供商(如 Dropbox)的备份文件同步。要启用此功能,您必须声明一个名为 cloud 的数组属性,并在其中以唯一名称声明每个云适配器,这些适配器也将可用于同步。

例如

cloud:
  adapaterone:
    ...    
  adapatertwo:
    ...

每个提供商都需要不同的参数,因此每个适配器都需要不同的属性,但它们都必须有一个名为 provider 的属性。

例如

cloud:
  adapaterone:
    provider: dropbox
    ...
Dropbox 适配器

要声明一个 Dropbox 适配器,您必须定义以下属性

例如

cloud:
  dropbox:
    provider: dropbox
    access_token: your_access_token
    app_secret: your_secret
    path: /path/on/your/dropbox

mysql:dump

mysql:dump 命令将 default_connection 数据库导出。

$ backap mysql:dump

--connection, -c

您可以明确指定一个或多个要导出的连接

$ backap mysql:dump --conection myconnection --connection otherconnetion

$ backap mysql:dump -c myconnection -c otherconnection

--no-compress

禁用文件压缩,无论是否在 .backap.yaml 文件中启用。此选项将始终被 --compress 选项覆盖。

$ backap mysql:dump --no-compress

--compress

启用文件压缩,无论是否在 .backap.yaml 文件中禁用。此选项将始终覆盖 --no-compress 选项。

$ backap mysql:dump --compress

--sync, -s

在导出文件时,您可以与一个或多个云提供商同步导出文件。此选项将始终被 --sync-all 选项覆盖。

$ backap mysql:dump --sync dropboxone --sync dropboxtwo

$ backap mysql:dump -s dropboxone -s dropboxtwo

--sync-all, -S

您还可以在导出文件时与所有定义的云提供商同时同步。此选项将始终覆盖 --sync 选项。

$ backap mysql:dump --sync-all

$ backap mysql:dump -S

mysql:restore

mysql:restore 命令从备份文件恢复 default_connection 数据库。

$ backap mysql:restore

mysql:restore 命令显示所有可用的备份文件列表,仅限于连接的数据库。最新备份文件被选中作为默认值。然后 Backap 会询问您是否继续数据库恢复。

--conection, -c

您可以明确指定要恢复的连接名称

$ backap mysql:restore --conection otherconnetion

$ backap mysql:restore -c otherconnection

--filename, -f

您可以明确指定要恢复的备份文件名称

$ backap mysql:restore --filename mybackupfile.sql

$ backap mysql:restore -f mybackupfile.sql

--all-backup-files, -A

mysql:restore 命令默认显示所有可用的备份文件列表,仅限于定义的连接的数据库,但您可以使用 --all-backup-files 选项来返回 Backap 生成的所有备份文件的列表。最新备份文件被选中作为默认值。

$ backap mysql:restore --all-backup-files

$ backap mysql:restore -A

--restore-latest-backup , -L

明确恢复连接数据库的最新备份文件。

$ backap mysql:restore --restore-latest-backup 

$ backap mysql:restore -L

--yes, -y

mysql:restore 命令始终要求您确认操作,但您可以使用 --yes 选项确认,而无需看到确认提示。

$ backap mysql:restore --yes

$ backap mysql:restore -y

--from-cloud, -C

显示可以从中检索备份文件的云提供商列表。

$ backap mysql:restore --from-cloud

$ backap mysql:restore -C

--from-provider, -p

明确指定要从中检索备份文件的云提供商

$ backap mysql:restore --from-provider dropboxone

$ backap mysql:restore -p dropboxone

files

files 命令显示一个表格,其中包含存储在 backap_storage_path 上的所有备份文件的详细信息。

$ backap files

--from-cloud, -C

显示可以从中检索备份文件的云提供商列表。

$ backap files --from-cloud

$ backap files -C

--from-provider, -p

明确指定要从中检索备份文件的云提供商

$ backap files --from-provider dropboxone

$ backap files -p dropboxone

sync

《sync》命令允许您与云服务提供商同步备份文件。可以从云服务中拉取文件或将文件推送到远程存储服务提供商。默认情况下,sync命令会要求您从已配置的服务提供商列表中选择一个,但您可以使用--provider选项明确指定一个服务提供商。

push

执行push操作会将本地存储的所有备份文件同步到选定的远程服务提供商。

$ backap sync push

$ backap sync push --provider dropboxone

$ backap sync push -p dropboxone

pull

执行pull操作会将选定的服务提供商上存储的所有备份文件同步到您的本地存储文件夹。

$ backap sync pull

$ backap sync pull --provider dropboxone

$ backap sync pull -p dropboxone