トップ(最新) | <前

nDiki : FreeBSD

FreeBSD

関連情報

スポンサード リンク

Related term

2004年1月18日 (日)

[ WiKicker ] IPC共有メモリを用いた直近のアクセスログ管理 このエントリーを含むはてなブックマーク

スポンサード リンク

昨日から本格的に検討していたアクセスログ管理であるが、今回は IPC::ShareLite モジュールを使って、IPC共有メモリに置くことにした。

  • 共有メモリなのでファイルに書くより圧倒的に速い。
  • (ipc key を変更した時など)削除し忘れてメモリに残るおそれがあるので注意。
  • IPC::ShareLitePerl 5.005_03 でも動く。
  • FreeBSDを使っているサーバで共有メモリが使えた(共有メモリを使うPostgreSQL が使えるようになっている事からも心配なし)。1024 * 512 bytes 取っても問題なし。
  • Storable を使ってシリアライズ。
  • この共有メモリを扱うモジュールファイル名を__FILE__で取得し、その更新ファイルをマジックナンバーとして、共有メモリに一緒に書いておく。読んだ時に一致しなければ破棄するようにする(今後しばらく、ちょくちょく形式を変更すると思うので)。

ちゃちゃっと実装して、やっつけであるが直近のログを見れるようにした(RecentLog )。 順次表示する情報の追加や、表示数の調整を行う予定。 それから、各ページでのロギング処理が高負荷時に重荷にならないか要チェック。

◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。


[ 1月18日全て ]

2004年2月8日 (日)

Berkeley DB 4.2.52 + DB_File 1.808 をホームにインストール このエントリーを含むはてなブックマーク

[ Perl ]

DiKicker の二次データの保存先を何にしようか思案中。 MLDBM::Sync が候補なのだが、MLDBM::Sync::SDBM_Fileだとデータが大きくなった時に速度が出ないようだ。

このサーバ(FreeBSD)のPerl(5.005_03)は、DB_FileGDBM_Fileも有効になかったので今までDBMパッケージの使用は避けてきたのだが、さすがに今回は使えないと辛いかも。

ということで Berkeley DB も含めて DB_File をホームにインストール

@ db-4.2.52

 tar zxvf db-4.2.52.tar.gz
 cd db-4.2.52/build_unix
 ../dist/configure --prefix=$HOME/local/db-4.2.52
 make
 make install
 rm -rf $HOME/local/db-4.2.52/docs

インストール自体は特に依存するものも無く簡単。 ただし、このサーバでは丁度 busy だった事もあってビルドに2時間!もかかってしまった。 本来は暇そうな時にやるべきなのだろうけど、今日中にうまくいくか検証しておきたかったので、待った。

@ DB_File-1.808

 tar zxvf DB_File-1.808.tar.gz
 cd DB_File-1.808
 export DB_FILE_LIB=$HOME/local/db-4.2.52/lib
 export DB_FILE_INCLUDE=$HOME/local/db-4.2.52/include
 perl Makefile.PL INSTALLDIRS=site \
                  LIB=$HOME/local/lib/perl \
                  INSTALLMAN1DIR=/tmp/man/man1 \
                  INSTALLMAN3DIR=/tmp/man/man3
 make OTHERLDFLAGS="-Wl,-rpath -Wl,$HOME/local/db-4.2.52/lib"
 make test
 make install

libdb を実行時に検索させるのに LD_LIBRARY_PATH環境変数とか指定したくなかったので、-rpath を指定してしまった。 Makefile中の OTHERLDFLAGS 変数がリンク時に空だったので、ここで設定。

しかし libdb-4.2 でかいな。 Perl からの呼び出し一発目は結構時間がかかる。


[ 2月8日全て ]

2004年2月16日 (月)

[ Perl ] DB_File - DB_BTREEロック このエントリーを含むはてなブックマーク

ということで、DB_File::Lock が本命か。

Search::InvertedIndex では、key/value の value に next key と prev key を持たせていて(正確にはindex番号)、hash の中に自前でリンクリストを作ってしまっている。 これって充分なスピードが出ているのだろうか?

もしそうなら DB_BTREE をやめて、MLDBM::SyncDB_HASH で使うという手もあるのだが。


[ 2月16日全て ]

2004年6月11日 (金)

Unison + Zebedee このエントリーを含むはてなブックマーク

記事「Unison で展示会機器のセットアップ」に、

wtnabe 2004-06-10 15:51:09 rsync もまともな認証とは呼べないような気がしますが。。。同じことをするなら tcpwrapper を使うって形になるんでしょうけど、Zebedee などで認証を掛けるともっと融通が利いてなおかつセキュアなんじゃないでしょうか。

という貴重なコメントをいただく。

Zebedee 最近使ってなかったな。ホスティングサーバ(FreeBSD)がSSH接続を提供してくれていなかった時は、Linux BOX からZebedee 経由で telnet したりmirror したりしていた。

ちなみに今回の用途では、通信路の暗号化はあまり重視していない(社内ネットワークで、対象ファイルはもともと皆が閲覧できるものだし、端末の前にも座れるから)。

@ Unison Soket メソッドでのサーバ側の問題

  • 認証なし
  • 接続ホストによるアクセスコントロール不可
  • 同期対象となるローカルファイルの制限不可。

というのが問題。

c:ドライブ全体(だけでなく全てのドライブ)をパスワード無しで「読み書き可能なWindowsファイル共有」しているような感じであり、気持ち悪い。

@ rsync サーバの認証

  • パスワード認証。平文では流れない。パスワードファイルは自体は平文で管理。
  • 接続ホストによるアクセスコントロール可。
  • 同期対象となるローカルファイル/ディレクトリは指定される。

平文でパスワードが流れることはないし、Unison でもこれぐらいの認証ができれば今回の用途では充分という感じ。

@ Unison + Zebedee

Windows 同士だと結局一方は Unison を Socket メソッドで起動しなければならない。 そのポートへは認証有のZebedeeトンネルで接続するとして、外部からは直接アクセスできないようにしなければならないので面倒。

Zebedee 自体はナイスなプログラムではあるのだが、Unison と組み合わせには使えないかな。 普段使いには Unison + SSH だし。

@ Windows

本家に Windows 版もあるのか。 インストーラの形になっているがインストールされる zebedee.exe は単体でも動く。 Unison との連携は別にしても、入れておいて損はないのでこれもUSBメモリにいれておこう。


[ 6月11日全て ]

2004年6月25日 (金)

納品作業 このエントリーを含むはてなブックマーク

CD-Rで用意したデータを配置するのに、mount しようとしたがうまくいかない。 …FreeBSD か。 よく知らぬ。

とりあえず自分の Linux BOX から scp で転送しておく。

しかし約束の時間にいったのにオフィスの片隅で立ったまま30分近く待たされるなど、大手のやる事は理解に苦しむ(もちろん多くの大手はそうではないと思うが)。


[ 6月25日全て ]

2005年5月4日 (水)

FreeBSD 上の Unisonアップグレード このエントリーを含むはてなブックマーク

すこし前に sidUnison が 2.10.2 になったのにともなって、FreeBSD なホスティングサーバ上の Unison (2.9.1) と同期できなくなってしまった。

ということでビルドしなおし。 まずは Ocaml から

 wget http://caml.inria.fr/pub/distrib/ocaml-3.08/ocaml-3.08.3.tar.gz
 tar zxvf ocaml-3.08.3.tar.gz
 cd ocaml-3.08.3
 ./configure -prefix /tmp/naney
 make world
 make opt
 make install

でその Ocaml を使って Unisonビルド

 tar zxvf unison-2.10.2.tar.gz
 cd unison-2.10.2
 PATH=$PATH:/tmp/naney/bin
 gmake UISTYLE=text
 ./unison -version
 cp -p unison $HOME/local/bin

[ 5月4日全て ]

2005年6月6日 (月)

[ WiKicker ] Storable 永続化データの互換性 このエントリーを含むはてなブックマーク

fkimura 氏から WiKicker の障害レポートをいただいた。 Perl v5.8.6 へ移行した環境で WiKicker 0.26 を試してみたところエラーになってしまうとのこと。

 "Error
 action: do_read: Byte order is not compatible at blib/lib/Storable.pm
 (autosplit into blib/lib/auto/Storable/thaw.al) line 366,
 at /usr/local/lib/perl5/site_perl/5.8.6/WiKicker/DB/File.pm line 161
 at /usr/local/lib/perl5/site_perl/5.8.6/WiKicker/CGI/AbstractController.pm line 93"

(FreeBSD 4.11-RELEASE-p9)

Storableエラーを吐いている。 Storable データ形式に互換性のない環境 (Perl and/or Storable) 変化があったようだ。

例えば Storableマニュアルによれば 64bit integer をサポートするように構築された Perl v5.6.0 や v5.6.1 で Storable 2.02 以前を使って書き出したデータを他の環境で読み出すと 'Byte order is not compatible' エラーが出るとある。

確認したところ前のバージョンは Perl v5.6.2 だそうなので、もしかしたら上記の非互換性にあたってしまったのかもしれない (FreeBSDPerl って 64bit integer サポートでビルドされるようになっている?)。

@ WiKicker での対応方法

WiKicker で使用している Perlアップグレードで上記問題にあたった場合、一番簡単な方法は Storable で書き出しているページ情報ファイルを一旦全部消してしまうという方法。

WiKickerデータベースディレクトリ (wikicker.database.directory プロパティで指定しているディレクトリ)の下の、info/basic/* を全て消してしまう(一応バックアップとしてコピーした方が良い)。

この場合、各ページの「最終更新時刻、最終更新者名、要約文」が消えてしまうが、これらの消えてしまった情報は次にページを更新した時に最新の情報で上書きされる。

WikiPage そのものおよび古いリビジョンは影響がなく全て残っているので、通常の運用ではまあ許容できる範囲の対処方法か。

情報ファイルを消したくない場合は、コンバートする必要があるけれど古い Storable データを読み出せる環境で export して、新しい形式で書き直す必要があるので作業する人にとってもちょっと面倒かもしれない。いや、新しい Storable ならば $Storable::interwork_56_64bit あたりを使えば両方をきりかえて読めそうであるので、新しい環境だけあればいいのかな。


[ 6月6日全て ]

2006年3月2日 (木)

FreeBSDApache::Htpasswd このエントリーを含むはてなブックマーク

WiKicker認証ドライバの1つとして、まずは Apachehtpasswd パスワードファイル(AuthUserFile ディレクティブ用パスワードファイル)形式のものを作成することにする。 これなら htpasswd で作成することができるので、最悪最初の段階では WiKicker に登録・削除機能を入れないで済む。

Perl からこのパスワードファイルを扱うモジュールとしては Apache::Htpasswd や、Authen::Htpasswd がある。 CPAN にある CGI-Application-Plugin-Authentication は前者を、Catalyst-Plugin-Authentication-Store-Htpasswd では後者を使用している。

機能的にはほぼ同じか。 Authen::Htpasswd の方がユーザ名に対応するオブジェクトを取得するメソッドがあり便利といえば便利だが、まあなくても困らないだろう。

ということで今回は、依存モジュールの少ない Apache::Htpasswd を選択した。 Perl 5.005_03 にはない warnings プラグマが使われているが、Htpasswd.pm の

 use warnings;

1行を削除すれば問題無し。

FreeBSD 4.4-RELEASE #3 + Perl 5.005_03 + Apache-Htpasswd 1.7 だと、crypt 関連のテストケースが失敗する(not ok 17)のがちょっと気になるところ。 MD5 ベースのパスワードの読み書きは問題ないので、この環境ではこちらを使うことにしよう。


[ 3月2日全て ]

2006年8月16日 (水)

LinuxWorld Conference & Expo このエントリーを含むはてなブックマーク

naney:219136331

サンフランシスコの Moscone Center で8月14日から8月17日まで開催されている LinuxWorld Conference & Expo の Expo の方を見にいってきた。

受付にある PC に事前登録してある名前を入力し、Print ボタンを押すとカウンターの方で手続きが行われる (最初 Continue を押したら入力フォーム出てきて、「え、面倒」と思ってしまった)。

名前の印字されたプラスチックカードをホルダーに入れて首から下げ展示会場へ。

@ .org Pavilion

まず向かったのは .org Pavilion。

入口を入って左手奥にあるのだが、そこだけ別世界の雰囲気だ。

なんというか、だらっとしている。 企業ブースのように営業目的があるわけではないので、媚びる風がなく勝手きままだ。 そこら辺で飯食ってるし。

置いてあるパンフレットは「What is ~?」という紹介的なもの。

聞きたいことがあれば、話かければよいのだが考えてみると特段これといってなかったりする。ぐるっとひとまわり。

Ubuntu というキーワードは何カ所かで見かけた。それなりにはやっているのか?

@ 企業ブース

大きなところは、NOVEL、IBM、AMD、HP、MOTOROLA、ORACLE、INTEL あたり。 特別注目すべきところはあまり感じられなかったかな。

全体を見るとモバイル系や、Virtualization が目についた感じだ。

naney:219136012 naney:219136212 naney:219138807

出る前に Debianブースによって T シャツを買ってきた。 多少は donation になるかな?

@ Information


[ シカゴ・サンフランシスコ出張 2006 ]


[ 8月16日全て ]

2006年12月4日 (月)

SpeedyCGI 以下で WiKicker がうまく動かない? このエントリーを含むはてなブックマーク

WiKicker ベースのシステムが稼働しているホストが FreeBSD 5.2.1-RELEASE から FreeBSD 6.1-RELEASE に更新されるのにともない、再インストール作業を行った。

動作確認をしたところ CGI プログラムは動くものの Perl モジュール中の DATA セクションが読めていないようなエラー表示がされた。

もしやと思い SpeedyCGI を外したら正常動作。

SpeedyCGI 下で動くことを考えて、DATA セクションを1度しか読まないようにコーディングしてあるはずなのだが、はて。

他の作業もあり細かいチェックができなかったのでもしかしたら違うところでの問題かもしれないが、ちょっと厄介。


[ 12月4日全て ]

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.030752s / load averages: 0.04, 0.10, 0.13
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)