cargomedia / s3export_backup
Requires
- cargomedia/cm: ~1.94.0
Requires (Dev)
- fzaninotto/faker: ~1.4.0
- phpunit/phpunit: ~4.1.3
- tomaszdurka/mocka: ~0.8.2
This package is not auto-updated.
Last update: 2020-01-24 15:31:33 UTC
README
该项目已不再维护。如果您想接管,请联系我们 tech@cargomedia.ch。
s3export_backup
s3export_backup
是 AWS 导出服务的命令行界面。
安装和配置
建议使用 librarian puppet 安装 s3export_backup
。模块可以在 https://github.com/cargomedia/puppet-packages/tree/master/modules/s3export_backup 找到。
沙盒
启动提供的 Vagrantfile 将启动一个包含所有依赖项的 Debian 虚拟机。应用程序仍然需要在配置文件 ./resources/config/local.php
中进行调整。要使用外部 USB 存储设备,请参阅 https://www.virtualbox.org/manual/ch03.html#settings-usb
使用
通过 puppet 安装时,应有一个全局二进制文件 s3export
(否则在项目中查找 ./bin/s3export
)。
Usage:
[options] <command> [arguments]
Options:
--quiet
--quiet-warnings
--non-interactive
--forks=<value>
Commands:
s3export cancel-job <job-id>
s3export create-job <manifest-path> <device-path> [--skip-format] [--dry-run]
s3export get-shipping-label <manifest-path> <job-id>
s3export get-status <job-id>
s3export list-jobs
s3export verify-backup <device-path> [--target-directory=<value>]
创建备份任务
$ s3export create-job ./manifest /dev/sdb1 --dry-run
您需要提供一个 manifest
文件,该文件必须根据 此参考 编译。请参考提供的 示例 manifest 文件 并根据您的需求修改它。请注意,目前仅支持 ext4
。
美国以外的客户
在跨过海关发送驱动器时,您需要在 manifest 文件中添加一个 customs:
部分。请参阅我们的示例文件和 此参考 了解如何操作。
准备运输
$ s3export get-shipping-label ./manifest JOBID
一旦成功执行,将生成一个 PDF 文件,并将其发布到 manifest 中配置为 logbucket
的 s3 桶中。请打印两次,将其中一份粘贴在包裹上,将另一份交给收集货物的司机。美国以外的客户(在美国以外)需要在运输中附上三份形式发票的副本。这有助于海关判断包裹内容的值和类型。此外,打印、填写并包含 此表格 到运输中。
备份验证
备份验证需要通过亚马逊将物理驱动器发送回来,并正确配置相应的 S3 文件系统(请参阅配置部分)。
$ s3export verify-backup /dev/sdb1 mysupersecurepassword --target-directory=/s3-export-bucket/
--target-directory
如果在 manifest
中提供了 targetDirectory:
,则是必填项。否则,验证无法在外部磁盘上找到备份的根目录。
维护者应手动查看验证命令的输出并进行分析。工具会扫描备份驱动器上的100个随机文件。每个文件都会通过两种检查与远程S3文件系统进行验证
- 检查相应的文件是否存在于远程文件系统中
- 这不是一个关键问题,因为文件可能已经在备份驱动器到达之前从S3文件系统中被删除。
- 比较本地(备份)和远程(源)文件的哈希值
- 应认真对待的失败:文件内容不同,这很可能是备份错误
如上所述,磁盘上的100个随机文件将与S3上的对应文件进行比较。显然,您需要互联网访问才能完成此操作,并且应意识到,尽管只传输文件的元数据,但您将根据传输的数据量付费。