*[PLUGIN] dumpプラグイン の作成 [#ee8ddb55]
*[PLUGIN] dumpプラグイン (バックアップ&リストア機能) の作成 [#ee8ddb55]

-ページ: BugTrack
-投稿者: [[henoheno]]
-優先順位: 重要
-状態: 着手
-カテゴリー: 本体新機能
-投稿日: 2004-09-26 (日) 19:44:01
-バージョン: 

--------------------------
#contents
--------------------------
**メッセージ [#b646c117]

----
[[teanan]]さん作成のバックアップ/リストアプラグイン([[org:自作プラグイン/tarfile.inc.php]])を PukiWiki に追加します。このプラグインはネットワーク越しにPukiWikiのバックアップ(*.tar/*.tar.gz)とリストアを可能にします。GPLとして配布はOKとの事です。ありがとうございます。これで助かる人は結構多いでしょう。

- 特徴:
-- phpファイル単独で動作する (tarやgzipやzipのようなシステムコマンドを呼んでいないし、その設定も不要)
-- リストアまで実現している 
-- エンコードされている生のページ名を、ディレクトリ階層つきのファイル名にデコードする機能(オプション)がある

---------------------------------------
** ちょっと確認: tar の構造 [#vae7feed]

- tar の構造
-- http://www.redout.net/data/tar.html


---------------------------------------
** ちょっと確認: Zlibモジュール [#v5b3bc70]

- PHP マニュアル: zlib圧縮関数
-- http://jp2.php.net/manual/ja/ref.zlib.php
-- "PHP 4.3.0 以降、zlib モジュールは php バイナリにビルトイン"

---------------------------------------
** これまでの経過 [#v8828a90]

- [[開発日記/2004-09-23]] [[teanan]]さん作成のバックアップ/リストアプラグイン([[org:自作プラグイン/tarfile.inc.php]]) をCVSに追加

- [[開発日記/2004-09-25]]
-- PukiWikiのデータが今後もファイルシステムベースだと仮定する必要はないので、名称をdumpとさせていただきました。
-- ライブラリ部分とそうでない部分を極力分離 (まだ一部混ざっている)
-- アップロード時はファイルの拡張子を自動で識別する (チェックボックスも除去)
-- アップロードしたファイルのサイズ上限をチェックする (実は未チェックだった (^^; )
-- パスワードの認証にpkwk_login() を使用する
-- その他、冗長な部分の削除、コメント追加&英語化、コメントの修正、$varsの使用など

--------------------------------------------
*** コメント [#v389cbe4]
-唐突ですね (^^; メッセージが親切な分、lngへの分離が大変そうです… -- [[にぶんのに]] &new{2004-09-26 (日) 08:43:26};
-はい、tarfile.inc.php v1.0 の発表と teananさんとのやりとりを受け、唐突に決めました (^^; このタイミングで受け取って、(CVSの上で、修正点を明確にしながら) PukiWiki本体に組み込むための作業やバランス調整を行うと、さらに早く進化するだろうと思ったのでした。 -- [[henoheno]] &new{2004-09-26 (日) 13:02:54};
-今はlng分離の前に、さらなる機能の検証と修練や、記録媒体に応じたダンプ動作の自動化(例えば、処理時間と転送量を考えると wiki/ ディレクトリはテキストファイルしか入っていないので絶対に圧縮すべきだが、backup/ ディレクトリは圧縮されているファイルしか入っていないので圧縮すべきでない。もし記録媒体がMySQLならやるべき事は''テーブル名の特定''とmysqldump + gzip。もし複数の記録媒体で実現されたものであるならばまとめて保存。等々)ができる様な内部構成の変更とPukiWiki本体の修正、tarライブラリの完全分離 (lib/ へ)、アップロードの部分の安全性の確認などをもう少し行いたいと考えています。説明やUIもそれを受けて変わるでしょう。 -- [[henoheno]] &new{2004-09-26 (日) 13:24:52};
-あと、しばらくしたらリストアの部分はデフォルトではoffにしなければならないと思っています。管理者には便利ですが、結構危ないので (^^; -- [[henoheno]] &new{2004-09-26 (日) 13:45:13};
-なるほど。修正前提のCVS投入とするとBugTrack(とマニュアル)への追加は待った方が良いですかね?例えばPukiWikiはzlib前提にはしていない筈なのでbackupファイルが*.txtとなる可能性がある、tar.gz形式を選択すると flockでWarning((flock(): cannot represent a stream of type ZLIB as a File Descriptor)) が出る(環境依存?)、何故かtar(GNU tar 1.12, TAR32.dll)で復元できなかった(私だけ?)、など幾つか見つかったのですが。 -- [[にぶんのに]] &new{2004-09-26 (日) 14:24:51};
-v1.11はデグレが発生してます。TAR_DATA_CHKBLANKSが定義されていないみたいです。 -- [[teanan]] &new{2004-09-26 (日) 19:13:24};
-ありがとうございます。専用のBugTrackを%%作りましょうか%% 作りました :) -- [[henoheno]] &new{2004-09-26 (日) 19:37:33};
-[[teanan]]さん、ありがとうございます。デグレードの場所としては r1.4 でした。使われていない変数などを整理する途中でこれを削除してしまった様です (^^; -- [[henoheno]] &new{2004-09-26 (日) 20:33:55};
-- [[cvs:plugin/dump.inc.php]] (v1.4:1.12)
-[[にぶんのに]]さん、マニュアルは急ぐ必要はありません。今後はどのリビジョンでお試しになったかをお教えください(恐らく上記defineが抜けている%%バージョン%%リビジョンではないかと思います (^^; )。「backupファイルが*.txtとなる可能性がある」というのはどうやってそうなるのでしょうか? -- [[henoheno]] &new{2004-09-26 (日) 20:37:17};
-[[teanan]]さん、TARLIB_HDR_TYPE_OFFSET がコメントアウトされている理由を知りたいのですが、どのへんの資料を当たると良いでしょうか? -- [[henoheno]] &new{2004-09-26 (日) 21:00:29};
-typeflagは通常のファイルの場合'0'または'\0'が許容範囲なのですが、'=0'で判定できなかったため、とりあえずコメントアウトしていました。 -- [[teanan]] &new{2004-09-26 (日) 21:03:54};
-tarのフォーマットについては、http://www.redout.net/data/tar.html で大体はわかります。他は見当たらないので、Tarのソースと他のtar.gzデータをみながら、推測して作りました (^^; -- [[teanan]] &new{2004-09-26 (日) 21:05:33};
-む、そういえばE_ALLで試していな・・・・ ((flock(): cannot represent a stream of type ZLIB as a File Descriptor)) -- [[henoheno]] &new{2004-09-26 (日) 21:05:57};
-・・・flockは gzopen() が返すポインタには対応していない様なので、とりあえずflock()を取り除きました。 -- [[henoheno]] &new{2004-09-26 (日) 21:33:01};
-いいかげんな作りで申し訳ないす :( -- [[teanan]] &new{2004-09-26 (日) 22:25:31};

#comment


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.090 sec.

SourceForge