elektro-potkan/备份管理器存档

备份 - 存档管理器

v1.1.0 2021-10-07 07:03 UTC

This package is auto-updated.

Last update: 2024-09-07 13:30:06 UTC


README

创建整个备份的存档的管理器。

用法

要使用管理器,您至少需要phar扩展。为了支持压缩tar存档,还需要安装zlib(gzip)或bzip2扩展。

如果phar扩展对您不可用,可以使用zip扩展作为后备(但您将仅限于zip格式)。

如果将格式设置为AUTO(如果没有提供则为默认值),管理器将检测可用的扩展并从列表中选择第一个可能的格式

  1. TAR_BZIP2
  2. TAR_GZIP
  3. TAR
  4. ZIP

示例

存档管理器仅增强了主elektro-potkan/backups包的功能。首先查看其README中的示例。

$manager = new ElektroPotkan\Backups\Managers\Archive(
	'path-to-backups-directory',
	'MyApp-v1.47.2',
	$purgeRule,
	ElektroPotkan\Backups\Managers\Archive::ARCHIVE_FORMAT_ZIP,
	'_bak_',// archive name suffix (default empty; must not collide with the jobs' names)
	true// keep individual backup files (default false = delete them after creating the final archive)
);

备份主文件

当使用$manager->get($id)$manager->list()检索现有备份时,返回的IBackup实例将具有mainFile属性设置为存档文件。

$backup->mainFile;// the whole-backup archive as IBackupFile instance

$backup->files;// IBackupFile instances of the individual files (except the archive)
               // Empty if the files were deleted after creating the archive
               // (depends on the Archive manager configuration above).

管理器没有任何类型的内部存储或缓存,每次调用都是从文件系统检索的。否则很容易出现不同步。因此,当存档名称或格式的配置更改时,旧备份的主文件可能无法正确地从单个文件中过滤出来。在这种情况下,mainFile属性将为null,存档文件将包含在files属性中。

存档名称与作业名称

作业文件使用与Simple/Locking备份管理器(由主elektro-potkan/backups包提供)相同的模式命名。

timestamp_date_name_job-name.ext

例如,对于配置了MyApp-v1.47.2作为$name参数的管理器,在2021-08-30 20:07:24 UTC创建的备份,使用名称test添加的作业并返回扩展名txt,生成的文件名将是

1630354044_2021-08-30_MyApp-v1.47.2_test.txt

如果管理器配置了空的$archiveName(默认值)和tar作为存档格式,生成的存档文件名将是

1630354044_2021-08-30_MyApp-v1.47.2.tar

如果配置为_bak_作为存档名称(如示例中所示),生成的存档文件名将是

1630354044_2021-08-30_MyApp-v1.47.2_bak_.tar

存档名称没有隐式分隔符(对于作业,总是下划线和非空作业名称)。

因此,您不能有一个名为_something的存档名称,使用zip格式,并且有一个名为something的作业返回zip作为其扩展名。在这种情况下,当您尝试添加具有此类冲突名称和扩展名的作业时,管理器将抛出InvalidArgumentException

作者

Elektro-potkan git@elektro-potkan.cz

信息

版本控制

此项目使用语义版本控制 2.0.0 (semver.org)

分支

此项目使用略微修改的Git-Flow工作流程和分支模型

许可证

您可以在BSD Zero Clause License或GNU通用公共许可证(GPL)版本3或更高版本下使用此程序。

请参阅文件LICENSE