17

plone.orgを見て、インスタンスの ZODB を定期的にパックする方法を見つけました、しかし手動で開始したものだけです。

wget または curl を使用してマニュアル パックをシミュレートできることはわかっていますが、それが運用サイトで使用するベスト プラクティスであるかどうかを知りたいです。

4

7 に答える 7

25

ZEO を使用している場合は、これを行うために Crontab に以下を追加できます。

0 1 * * 6 <path-to-buildout>/bin/zeopack

手動で行いたくない場合は、これを buildout.cfg に追加してください。bin/buildout を実行すると、上記の crontab エントリが自動的に追加されます。

parts += crontab_zeopack

# pack your ZODB each Sunday morning and hence make it smaller and faster
[crontab_zeopack]
recipe = z3c.recipe.usercrontab
times = 0 1 * * 6
command = ${buildout:directory}/bin/zeopack
于 2011-03-14T16:05:25.483 に答える
6

ZEO を使用しない場合:

curl -X POST -d 'days:float=0' http://admin:admin@localhost:8080/Control_Panel/Database/main/manage_pack
于 2011-03-15T09:21:46.017 に答える
5

私はこのようにします(https://raw.github.com/plock/pins/master/zeoから):

[backup]
recipe = collective.recipe.backup

# Backup daily
[backups]
recipe = z3c.recipe.usercrontab
times = 0 0 * * * 
command = ${buildout:bin-directory}/bin/backup

# Pack once a month
[packups]
recipe = z3c.recipe.usercrontab
times = 0 0 1 * * 
command = ${buildout:bin-directory}/bin/zeopack
于 2011-04-07T00:32:01.643 に答える
2

ZEOにはzeopackを使用し(他の回答を参照)、RelStorageにはzodbpackを使用します(含まれています。RelStorageのドキュメントを参照してください)。どちらも簡単に設定できます。

于 2012-04-14T20:59:23.817 に答える
2

collective.migratorをチェックしてみてください。とりわけ pack_db レシピがあります。

于 2011-04-05T17:51:11.373 に答える
1

python/urllib ソリューションについては、http ://www.zope.org/Documentation/Books/ZopeBook/2_6Edition/MaintainingZope.stx を参照してください。

#!/usr/bin/python
import sys, urllib
host = sys.argv[1]
days = sys.argv[2]
url = "%s/Control_Panel/Database/manage_pack?days:float=%s" % \
      (host, days)
try: 
    f = urllib.urlopen(url).read()
except IOError:
    print "Cannot open URL %s, aborting" % url
print "Successfully packed ZODB on host %s" % host
于 2011-03-15T17:53:16.493 に答える
0

wget -O / dev / null -q --post-data ='days:float = 10' --user = adminuser --password = password http:// localhost:PORT // Control_Panel / Database / main / manage_pack

あなたがwgetを好むなら。

于 2012-04-14T19:20:58.100 に答える