FrontPage
>>
ZopeReboot
last edited 6 years ago by jack
なんか、メモリリークしているのか、メモリの増大が激しいので、とりあえず、自動で再起動するようにしました
ついでにZODB のパックと export もつけました。これは http://takanory.net/ を参考にしました。
ただ、人と同じでは有為なメモにならないので、ちょっと替えました(笑)
まずは、再起動用スクリプトを書きます :
#!/bin/sh AUTH="admin_id:admin_pass@Zope" SITE="zope.site.name" HOME="/path/to/zope/instance" OPT="-timeout 99 -auth $AUTH" OWN="zopeuser:zopegrp" cd $HOME/var /usr/bin/w3c $OPT "http://$SITE/Control_Panel/Database/main/manage_pack?days:float=7" /usr/bin/w3c $OPT http://$SITE/manage_exportObject mv .zexp root.zexp /usr/bin/w3c $OPT http://$SITE/Control_Panel/manage_restart chown "$OWN" root.zexp cd $HOME/log chown "$OWN" *log
まあ、どっちにしろ root 権限が必要なので、/root/zope_rotate とか作ります。そして、このスクリプトを FQDN とかで置きます :
mv a /root/zope_rotate/zope.site.name chmod 700 /root/zope_rotate/zope.site.name
うーん。a ってのは適当すぎだったかも(笑)
つぎに、zope_rotate に logrotate.conf を書きます :
weekly rotate 7 create compress include /root/zope_rotate/instances
つぎに instances ディレクトリを掘ります :
mkdir instances
そこに、logrotate の個別ファイルを作ります。やっぱり zope.site.name とかにしたほうがいいでしょう :
/path/to/zope/instance/var/*zexp {
missingok
notifempty
sharedscripts
}
/path/to/zope/instance/log/*log {
missingok
notifempty
sharedscripts
postrotate
/root/zope_rotate/zope.site.name
endscript
}
最後に、logrotate の起動をcrontabに追加します :
50 02 * * * /usr/sbin/logrotate /root/zope_rotate/logrotate.conf
これで週一packしてexportしてrebootしてlogrotate してくれる・・・はずです。
一件無意味に面倒そうですが、一台で複数インスタンス上げている場合には、こういう方式にしたほうがラクだと思います。
/root/zope_rotate , /root/zope_rotate/instances の下でコピーしてちょっと書きかえるだけですからね。