zenstruck / backup-bundle
Symfony Bundle 用于封装备份命令
v2.2.0
2024-02-19 15:56 UTC
Requires
- php: >=8.0
- symfony/framework-bundle: ^5.4|^6.0|^7.0
- zenstruck/backup: ^2.0
Requires (Dev)
- matthiasnoback/symfony-dependency-injection-test: ^4.3|^5.1
- phpunit/phpunit: ^9.6
- symfony/console: ^5.4|^6.0|^7.0
- symfony/phpunit-bridge: ^6.1|^7.0
- symfony/yaml: ^5.4|^6.0|^7.0
README
此包允许在 Symfony 应用程序中创建和管理备份。它是 zenstruck/backup 的封装。
安装
- 使用 composer 安装
composer require zenstruck/backup-bundle
-
启用包:如果您不使用 Symfony Flex,则需要此步骤。
// config/bundles.php return [ // ... Zenstruck\BackupBundle\ZenstruckBackupBundle::class => ['all' => true], ];
配置
在您的 config/packages/zenstruck_backup.yaml
中添加至少一个来源、命名、处理器、目的地以及一个配置文件。
示例
zenstruck_backup: sources: database: mysqldump: database: my_database files: rsync: source: "%kernel.project_dir%/public/files" additional_options: - --exclude=_cache/ namers: daily: timestamp: format: d prefix: mysite- snapshot: timestamp: prefix: mysite- processors: zip: { zip: ~ } destinations: s3: s3cmd: bucket: "s3://foobar/backups" profiles: daily: scratch_dir: "%kernel.project_dir%/cache/backup" sources: [database, files] namer: daily processor: zip destinations: [s3]
命令
运行备份命令
Usage:
zenstruck:backup:run [--clear] [<profile>]
Arguments:
profile The backup profile to run (leave blank for listing)
Options:
--clear Set this flag to clear scratch directory before backup
注意:
- 添加
-vv
以查看日志。 - 对于长时间运行的备份,可能需要在您的
bin/console
中增加memory_limit
。 - 在没有配置文件的情况下运行命令将列出可用的配置文件。
示例(使用上述配置)
-
在
s3://foobar/backups/mysite-{day-of-month}
创建备份bin/console zenstruck:backup:run daily
-
在
s3://foobar/backups/mysite-{YYYYMMDDHHMMSS}
创建备份bin/console zenstruck:backup:run snapshot
列出现有备份
Usage:
zenstruck:backup:list [<profile>]
Arguments:
profile The backup profile to list backups for (leave blank for listing)
注意:在没有配置文件的情况下运行命令将列出可用的配置文件。
完整的默认配置
zenstruck_backup: namers: # Prototype name: simple: name: backup timestamp: format: YmdHis prefix: '' timezone: ~ processors: # Prototype name: zip: options: '-r' timeout: 300 gzip: options: '-czvf' timeout: 300 sources: # Prototype name: mysqldump: database: ~ # Required host: ~ user: root password: null ssh_host: null ssh_user: null ssh_port: 22 timeout: 300 rsync: source: ~ # Required timeout: 300 additional_options: [] default_options: # Defaults: - -acrv - --force - --delete - --progress - --delete-excluded destinations: # Prototype name: stream: directory: ~ # Required flysystem: filesystem_service: ~ # Required s3cmd: bucket: ~ # Required, Example: s3://foobar/backups timeout: 300 profiles: # Prototype name: scratch_dir: '%kernel.cache_dir%/backup' sources: [] # Required, can be a string namer: ~ # Required processor: ~ # Required destinations: [] # Required, can be a string