Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the suggested way to cron-automate ZODB packs for a production Plone instance?

Looking at plone.org to find a way to periodically pack my instance's ZODB I could only find http://plone.org/documentation/faq/how-do-i-pack-the-zodb that doesn't talk about automated packs, but just manually initiated ones.

I know I can simulate the manual pack with wget or curl, but I'd like to know if that is the best practice in use for production sites.

like image 416
silviot Avatar asked Mar 14 '11 15:03

silviot


3 Answers

If you are using ZEO you can add the following to your Crontab to do this:

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

If you don't want to do it manually, add this to your buildout.cfg and the crontab entry above will be added automatically when you run bin/buildout:

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
like image 150
zupo Avatar answered Nov 20 '22 01:11

zupo


If you do not use ZEO:

curl -X POST -d 'days:float=0' http://admin:admin@localhost:8080/Control_Panel/Database/main/manage_pack
like image 40
chrigl Avatar answered Nov 20 '22 00:11

chrigl


I do it like this (from 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
like image 5
aclark Avatar answered Nov 20 '22 02:11

aclark