grossberger-georg / typo3-snapshot
创建和恢复数据库和fileadmin快照
Requires
- setasign/fpdf: ^1.8
- typo3/cms-core: ^9.5 || ^10.4
- typo3/cms-extbase: ^9.5 || ^10.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.14
- grossberger-georg/php-dev-tools: ^1.2
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^8.1
This package is auto-updated.
Last update: 2024-09-19 23:15:21 UTC
README
这是一个TYPO3扩展,用于在命令行界面创建当前安装的快照。它可以创建和恢复快照,为较大的文件资源创建占位符,并匿名化数据库数据。
重要:目前仅支持MySQL或兼容数据库!
安装
使用composer添加它 composer require grossberger-georg/typo3-snapshot
或从TER加载并在扩展管理器中安装。
程序 tar
和 gzip
必须在 $PATH
/ %PATH%
中可用。
使用方法
扩展将添加两个新的命令: snapshot:create
和 snapshot:restore
。它们可以通过TYPO3 CLI脚本来调用: ./vendor/bin/typo3 snapshot:create|restore
。如果composer.json清单中的bin-dir设置已更改,则必须相应地运行此处列出的命令。
创建快照
运行 snapshot:create
将在 ROOT_PATH/var
或 DOCUMENT_ROOT/typo3temp/var
内的 snapshot/
文件夹中创建一个快照,具体取决于配置。快照有一个名称,由其数据所在的文件夹名称确定。
该命令接受一个可选参数:要创建的快照名称。如果没有指定名称,则使用当前时间戳并打印到stdout。
# Will create a snapshot in var/snapshot/dev/ vendor/bin/typo3 snapshot:create dev # Will create a snapshot in var/snapshot/YYYYMMDDHHMMSS/ vendor/bin/typo3 snapshot:create
还有三个额外的选项
--files
选项
对于每个使用Local驱动的FAL存储,都会创建一个tar存档,其中包含所有文件。在典型安装中,这是文件夹 fileadmin/ 的内容。仅排除 _processed_ 目录。
将为使用Local驱动的每个存储创建一个名为 [STORAGE_UID]--[STORAGE_NAME].tar.gz
的文件。对于fileadmin,快照将在存档文件 1--fileadmin.tar.gz
中包含其内容。
--small
选项
这是对 --files
的补充。在没有 --files
的情况下添加 --small
选项没有效果。
通过以下两种简单措施减小快照的大小
1. 创建占位符
这将减小大于100KB的文件的大小。
对于网页格式(gif、png、jpg和webp)中的图像以及PDF文件,将生成包含仅文本文件名的占位符。图像将与原始图像具有相同的尺寸。PDF将只有一页。
其他文件类型,如二进制下载,将用原始内容的MD5校验和替换其内容。其大小将减少到固定的16字节。这意味着ZIP或可执行文件等文件将不再工作!
2. 仅添加引用文件
检查表 sys_file_reference
,如果存储中的文件在页面上实际使用,则将其添加到快照中。如果没有使用,则不会添加到快照中。
--anonymize
选项
这将通过匿名化和删除某些信息来匿名化导出的记录中的可能敏感数据。
目前,它默认与 sys_log
、fe_user
、be_users
和 tt_address
一起工作。仅处理非空值的字段,空字段保留为空。
在登录信息(fe_users 和 be_users)的情况下,包含用户名和密码的字段不会更改。这是因为这些信息是功能性的,无法更改,否则可能会产生副作用。此外,内部字段,如 UID,也不会更改。
恢复快照
这将通过导入数据库来恢复 var/snapshot 文件夹内的快照,并且如果通过开关启用,还会将文件解压到它们存储的根目录。
# Restore latest snapshot, including files vendor/bin/typo3 snapshot:restore --files # Restore snapshot "dev" without files, database only vendor/bin/typo3 snapshot:restore dev
如果未设置 name
参数,则通过使用可用快照按字母顺序排列的第一个条目来确定快照。默认情况下,快照使用时间戳命名,因此将使用最新的快照。
如果没有使用 --files
开关,则只恢复数据库。
鸣谢
匿名化程序在其操作中使用了以下静态数据集
- 个人名称基于 docker names-generator:[https://github.com/moby/moby/blob/master/pkg/namesgenerator/names-generator.go](https://github.com/moby/moby/blob/master/pkg/namesgenerator/names-generator.go)
- 公司名称来自《财富》500强榜单(2018年):[http://fortune.com/fortune500/list](http://fortune.com/fortune500/list)
- 主机是 100 个最大网站的顶级域名。
- 国家列表来自 EXT:static_info_tables v6.7.4 中的英文国家名称
- 城市列表来自 EXT:static_info_tables v6.7.4 中的国家首都