这个配方是plone数据的备份并发送到amazon s3
c2.recipe.bkups3的Python项目详细描述
要求
- 扑通一声
- plone 4.0(在MacOS 10.6上通过4.0.4进行测试)
- 在python中支持ssl(如果备份目标是aws-s3)
- Amazon Web服务帐户(AWS访问密钥/AWS密钥)
- s3根存储桶名称
信息
注
如果bin文件夹中没有repozo命令,则需要在buildout.cfg中添加行。以下行将创建此配方正在使用的bin/buckup脚本。
buildout.cfg
[repozo] recipe = zc.recipe.egg eggs = ZODB3 scripts = repozo
简单用法
修改buildout.cfg
parts = ... bkups3 [bkups3] recipe = c2.recipe.bkups3 use_s3 = true aws_id = xxxxxxxxxxxxx aws_key = xxxxxxxxxxxxxxxxxxxxxxxxxx bucket_name = xxxxxxxxxx bucket_sub_folder = mysitename sync_s3_filesfolder = true blob_store_count = 7
运行构建
bin/buildout -N
您可以使用备份脚本
bin/bkups3
您将在var/backups中看到文件存储备份,在var/blobbackups中看到blobstorage backup 以及您分离的amazon web服务s3 bucket。
详细文档
支持的选项
配方支持以下选项:
- blob_bk_dir_名称
- 设置备份路径名。 defalut:blobbackups
- 使用s3
- 默认值:false 使用s3为真,不使用s3为假
- aws\u id
- <;AWS访问键>;
- aws_键
- <;AWS密钥>;
- 桶名
- <;s3存储桶名称>; 在Amazon S3中设置唯一的bucket名称
- 存储桶子文件夹
- 选项:s3 bucket中的子文件夹
- 同步s3文件文件夹
- 默认值:真
- blob存储区计数
- defalut:1
- 保存的blob文件数
我们将使用所有选项:
>>> write('buildout.cfg', ... """ ... [buildout] ... parts = bkups3 ... ... [bkups3] ... recipe = c2.recipe.bkups3 ... blob_bk_dir_name = blobbackups ... use_s3 = true # Using S3 -- true, Not use S3 -- false ... aws_id = xxxxxxxxxxxx ... aws_key = xxxxxxxxxxxxxxxxxxxxxxxxx ... bucket_name = xxxxxxxx ... bucket_sub_folder = mysitename ... sync_s3_filesfolder = true ... blob_store_count = 7 # Stored 7 times ... """) >>> print system(buildout) # doctest:+ELLIPSIS Installing backuptos3. backup: Created /sample-buildout/var/backups/blobstorage Generated script '/sample-buildout/bin/bkups3'.
示例用法
为了隔离一些测试差异,我们只运行一次空构建:
>>> ignore = system(buildout)
我们将从创建使用配方的构建开始:
>>> write('buildout.cfg', ... """ ... [buildout] ... parts = bkups3 ... ... [bkups3] ... recipe = c2.recipe.bkups3 ... use_s3 = true ... """)
运行构建将向 bin/目录,默认情况下,它创建var/bkups3目录:
>>> print system(buildout) # doctest:+ELLIPSIS Installing backuptos3. backup: Created /sample-buildout/var/backups/blobstorage Generated script '/sample-buildout/bin/bkups3'. <BLANKLINE> >>> ls('var') d blobbackups >>> ls('bin') - bkups3 - buildout
备份
调用bin/bkups3将导致正常的repozo备份和blobstorage备份并存储到amazon s3。我们安排了一个 模拟repozo脚本,打印传递的选项 可执行)。目前,它是非常特定于unix的。
>>> import sys >>> write('bin', 'repozo', ... "#!%s\nimport sys\nprint ' '.join(sys.argv[1:])" % sys.executable) >>> #write('bin', 'repozo', "#!/bin/sh\necho $*") >>> dontcare = system('chmod u+x bin/repozo')>>> import sys >>> write('bin', 'backup', ... "#!%s\nimport sys\nprint ' '.join(sys.argv[1:])" % sys.executable) >>> #write('bin', 'backup', "#!/bin/sh\necho $*") >>> dontcare = system('chmod u+x bin/backup')
默认情况下,备份在var/backuptos3:
>>> print system('bin/bkups3') --backup -f /sample-buildout/var/filestorage/Data.fs -r /sample-buildout/var/backups --gzip INFO: Backing up database file: ...
贡献者
Manabu Terada(Terapyon),作者
变更历史
1.0(2011-12-02)
- 与rc2[terapyon]相比没有变化
1.0rc2(2011-05-06)
- blob_文件的错误修复本地数据库名[terapyon]
1.0rc1(2011-04-24)
- 正在检查更新blobstorage[terapyon]
1.0b4(2011-04-18)
- 打包失败修复[terapyon]
1.0b3(2011-04-18)
- 打包失败修复[terapyon]
1.0b2(2011-04-18)
- 变量名从blob_store_len更改为blob_store_count[terapyon]
- 支持的not对plone 3.x使用blobstorage(但还不能运行plone 3.x)[terapyon]
- 在bucket[terapyon]中设置子文件夹
- S3文件的非同步模式[terapyon]
1.0b1(2011-04-14)
- 备份文件存储(使用bin/buckup,collective.recipe.backup)[terapyon]
- 备份blobstorage[terapyon]
- 亚马逊S3发送桶[terapyon]
1.0a1(未发布)
- 用zope创建配方骨架 [manabu terada(@terapyon)]