ZMI をスクリプトで操作する [Python/Django/Zope]
穂苅さんからZope/Plone アドベントカレンダー2009のバトンが回ってきたので、Zope の小ネタを・・・
Zope には、ZMI で ZODB のオブジェクトを export したり import したりする機能があります。下図のように ZMI 上でオブジェクトをチェックし、export/import ボタンを押すと・・・

Export/Import 画面になり、上段が Export の画面です。

上記の画面の Export ボタンで、サーバーの var ディレクトリにバックアップされます。
Export to に「Download to local machine」を選択すると、下図のようなダイアログが出て、手元のマシンにファイルをダウンロードすることができます。

・・・とここまでが前座。
ブラウザでできることは Python でもできますね。
こんな↓ Python のコードで、上図のような foo フォルダにある bar オブジェクトを export して手元のマシンに baz.zexp というファイルとして保存できます。
同様に、ZODB の pack も、下図の Pack ボタンで実行できますが・・・

こちらは、下のように wget で十分ですね。
これらのスクリプトを使って、 cron から定期的にバックアップを取ったり pack したりしたら便利じゃないでしょうか。
次のバトンは、森本さんにお渡ししたいと思います。よろしくお願いします。
Zope には、ZMI で ZODB のオブジェクトを export したり import したりする機能があります。下図のように ZMI 上でオブジェクトをチェックし、export/import ボタンを押すと・・・

Export/Import 画面になり、上段が Export の画面です。

上記の画面の Export ボタンで、サーバーの var ディレクトリにバックアップされます。
Export to に「Download to local machine」を選択すると、下図のようなダイアログが出て、手元のマシンにファイルをダウンロードすることができます。

・・・とここまでが前座。
ブラウザでできることは Python でもできますね。
こんな↓ Python のコードで、上図のような foo フォルダにある bar オブジェクトを export して手元のマシンに baz.zexp というファイルとして保存できます。
import urllib
import urllib2
toplevel_url = 'localhost:8080'
url = 'http://' + toplevel_url + '/foo/manage_exportObject'
username = 'admin'
password = 'admin'
params = urllib.urlencode({'id':'bar','download:int':'1','set_owner:int':'1'})
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, toplevel_url, username, password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)
open('baz.zexp', 'w').write(urllib2.urlopen(url, params).read())
同様に、ZODB の pack も、下図の Pack ボタンで実行できますが・・・

こちらは、下のように wget で十分ですね。
wget --http-user=admin --http-passwd=admin --post-data='days:float=0' \
--max-redirect=0 --output-document=/dev/null \
http://localhost:8080/Control_Panel/Database/main/manage_pack
これらのスクリプトを使って、 cron から定期的にバックアップを取ったり pack したりしたら便利じゃないでしょうか。
次のバトンは、森本さんにお渡ししたいと思います。よろしくお願いします。
トラックバック 1
[Python][Mercurial]巡回(常山日記 2009-12-18 02:11)
Perl vs Shell vs Python [Python][Wine][GUI化].mmlファイルを監視して上書き保存時にWine上のppmckで.mmlファイルから.nsfファイルへ自動で変換するためのGUIツールを作成(2009/12/17版) Python Testing:…[続く]
この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。






コメント 0