Zopeのpack自動化

ZopeはData.fsにコンテンツやらなにやらオブジェクトの一切合財を詰め込んでるんですが、これほっとくとどんどん太っていきます。際限なく大きくなっていくので定期的にpackする必要があります。ちなみに私が管理しているサイトではpackした状態で約4G。1週間放っておくと20Gとか。

手動でやるならZMIの管理画面でpackボタンをクリックすればいいのですが、アクセスがたくさんある時間帯にやるとかなりの確立でZopeがだんまりになります。なので夜中にcron+wgetで自動化。
昔読んだ本にはこんな方法でやれって書いてありました。

wget --http-user=admin --http-passwd=admin_passwd --output-document=/dev/null http://localhost/Control_Panel/Database/main/manage_pack?days:float=0

でも現行のZopeだとこれでやるとForbiddenになってevent.logにこんなログがでます。

Forbidden: Request must be POST

ということで、こんな風にやるのがいいみたい。

wget --http-user=admin --http-passwd=admin_passwd --post-data='days:float=0' --output-document=/dev/null http://localhost/Control_Panel/Database/main/manage_pack

これを適当にcrontabに登録すればOK。