タグ

ブックマーク / dayflower.hatenablog.com (26)

  • 多段 ssh / rsync するために ProxyCommand を使ってみる - daily dayflower

    以前 2.(gatewaynetcat を ssh 経由で実行することによる転送)はよくわからないけど失敗 多段 rsync がめんどくさい - daily dayflower と書きましたが,なんとなく仕組みがわかってきたので書きます。 2年前くらいに流行ってたネタなので今更感満点。 まとめ 単純に到達できない場所に ssh でつなぐために ProxyCommand という [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config:title=ssh_config] の設定子が使える ProxyCommand とは ssh クライアントと標準入出力でやりとりする 多段 ssh をする際に ProxyCommand で指定すると有用なものとして下記のものがある nc (netcat) OpenBSD や RedHat 系には(お

    多段 ssh / rsync するために ProxyCommand を使ってみる - daily dayflower
  • uWSGI でファイルが更新された時にリロードする - daily dayflower

    最初は inotifyx 使って自力で書こうとしてたんだけど,ブロックしてうまくいかなかったりして,thread でも立てなきゃいけないのかなと思って uwsgidecorators を読んでたら,そもそも uwsgidecorators (というかそもそも uwsgi-core) にファイル更新検知機能がついてた。 http://projects.unbit.it/uwsgi/wiki/Decorators#filemon メインとなる wsgi ファイルが main.wsgi というファイル名だったとして,監視するモジュール((別モジュールだてにしなくてもいい (main.wsgi に入れ込む) のかもしれないけど追ってない。追記: やってみたら別モジュールに独立させなくてもうまくいった。小さい捨て WSGI スクリプトであればリロードのロジックを入れ込むのが楽。(もちろん,WSGI

    uWSGI でファイルが更新された時にリロードする - daily dayflower
    oinume
    oinume 2012/11/23
  • 多段 ssh / rsync するために ProxyCommand を使ってみる (2) - daily dayflower

    さーて,どんどんこんらんさせていきますよ。 高度な例 (3) - 多段 ssh 要件は*1 host:gw1 に user:foo というアカウントがある host:gw2 に user:bar というアカウントがある host:target に user:baz というアカウントがある user:dayflower が host:local から host:gw1, host:gw2 を経由して host:target に user:baz で アクセスしたい ProxyCommand をカスケードして指定していけばなんとでもなります。実行例は下記のとおり((コマンドラインから実行する場合,実用上の理由から %h や %p などの展開は利用していません))。 local% ssh -o "ProxyCommand ssh -o 'ProxyCommand ssh -l foo -i fo

    多段 ssh / rsync するために ProxyCommand を使ってみる (2) - daily dayflower
  • HTTP/1.1 の同時接続数について - daily dayflower

    はてなブックマーク - Fasterfoxが最強すぎる件 - 真性引き篭もり が盛り上がってたので,机上の話だけですが,いまさら書いてみます。 RFC (2616) での記述 Clients that use persistent connections SHOULD limit the number of simultaneous connections that they maintain to a given server. A single-user client SHOULD NOT maintain more than 2 connections with any server or proxy. A proxy SHOULD use up to 2*N connections to another server or proxy, where N is the number

    HTTP/1.1 の同時接続数について - daily dayflower
    oinume
    oinume 2012/03/29
  • Exporter を使ったモジュールの継承 - daily dayflower

    おまえは何を言っているんだみたいな話だったらすみません。 たとえば,foo() という関数を export している ModA というモジュールがあるとします。 package ModA; use strict; use warnings; use base qw( Exporter ); our @EXPORT = qw( foo ); sub foo { warn sprintf '%s::foo called', __PACKAGE__; } 1; こいつをたとえば #!/usr/bin/perl use strict; use warnings; use ModA; foo(); のように使うと, ModA::foo called at ModA.pm line 12.のように出ます。 ここまでは当たり前。 use ModB したら ModA::foo() を呼び出せるようにしたい

    Exporter を使ったモジュールの継承 - daily dayflower
    oinume
    oinume 2009/03/30
  • CentOS 5 に ZABBIX をインストールした - daily dayflower

    ZABBIX の特徴 (Cacti ほどではないが)Nagios より見映えが洗練されている Nagios と異なり Web UI から管理項目を追加したりできる Cacti よりリモートエージェントが軽い,と思われる 警告通知にメールだけでなく Jabber プロトコルが使える*1 ざっくりまとめると,Nagios と Cacti を足して 2 で割った感覚です。テキスト設定ファイル指向な方には Nagios のほうが向いているかも*2。rrdtool の思想と見た目が好きな人は Cacti が向いているかも。 ZABBIX のコンポーネント おおまかにいって以下の3つにわかれています。 zabbix-agent - 監視エージェント written in C 監視対象にインストールする つまり nagios-nrpe の ZABBIX 版です 別にインストールしなくても ICMP pi

    CentOS 5 に ZABBIX をインストールした - daily dayflower
  • prove (Test::Harness) コマンドの --state オプション - daily dayflower

    テストが膨大になっていくと,あるテストでは時間がかかったりして「そのテストはもう成功することがわかっとるっちゅうねん;失敗するテストだけ再テストしたいっちゅうねん」ってことになったりします。そんなときに使えるのが prove コマンドの --state オプションです。 --state オプションに failed という引数をわたすと,「テストの対象は前回 fail したテストスクリプトのみ対象」という意味になります。ステートを保存する save と併用して指定してみます。 % prove --state failed,save No saved state, selection will be empty Files=0, Tests=0, 0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU) Result: NOTESTS「No save

    prove (Test::Harness) コマンドの --state オプション - daily dayflower
    oinume
    oinume 2009/01/21
    proveにこんな便利なオプションがあったとは。
  • mod_perl と Perl インタプリタプール - daily dayflower

    前々回も書きましたが,worker MPM で mod_perl を使うと,インタプリタプールなるものが作成されます。このインタプリタプールというのはまさに Apache におけるプロセスプール(prefork MPM の場合)やスレッドプール(worker MPM の場合)の Perl インタプリタ版のようなものです。 このインタプリタプールでの PerlInterpMax(総数の最大)はデフォルトで 5 になっています。ですから,「prefork MPM から worker MPM にしたらメモリ消費量がガツンと減ったぜ!httpd の thread 数 150 でぶんまわしてるのに!スレッドマンセー!」とぬか喜びしていると,実は Perl は並列に 5 つしか走っていなかった,ということがありえます。 2007/09/27 追記。adiary 作者さんからトラバいただきました(⇒Pe

    mod_perl と Perl インタプリタプール - daily dayflower
  • mod_perl 2.0 on worker MPM の特性 - daily dayflower

    だらだらと3日にわたって書いてきましたが,明日から遅めのお盆休みになるのでまとめをメモ書きしておきます。 worker MPM での mod_perlPerlithread を使っている httpd のスレッドプールとは独立して Perl インタプリタプールが存在する Perl インタプリタプールの最大インタプリタ数などは設定で変更可能 デフォルトで最大 5(少ない!) インタプリタプールはインタプリタのステート保持構造体のプールであり,インタプリタスレッドのプールではない(実行時アタッチ)←ちょっと推測 だから httpd のスレッドプールのスレッド数より多くも少なくも設定できる インタプリタ数が足りなくなったときは空きがでるまでブロックする Perl ithread では変数は TLS (スレッド間で独立したロケーション)に保持され,基的にスレッドセーフ 他インタプリタス

    mod_perl 2.0 on worker MPM の特性 - daily dayflower
    oinume
    oinume 2008/10/11
    >私感では worker のメリットがあまりよくわかりません(とりたてて軽くないような)。単純なハンドラで apache-bench とると(on Linux),prefork だと Connect が速くて Processing がちょい遅め,worker だと Connect がちょいラグありで P
  • 図解: Perl と Unicode 文字列 - daily dayflower

    id:tomi-ru さんが [http://e8y.net/mag/015-encode/:title] というとてもプラクティカルな [http://search.cpan.org/perldoc?Encode:title=Encode] 入門をお書きになったので,わたしも違う切り口で書いてみたくなりました。 いちおうの基礎(読み飛ばし可) 文字セット, キャラクタセット, 文字集合, 文字集合 - Wikipedia エンコーディング, 符号化方式, 文字符号化方式 - Wikipedia この2つは異なります。とくに知らなくても下記の文書を読むことはできますが,理解しているとためになります。くわしく知りたい人は自習してください。 文字セットの例 Unicode JIS X 0208 ひらがなとかカタカナとか漢字とか ASCII 文字 エンコーディングの例 UTF-8 ISO-202

    図解: Perl と Unicode 文字列 - daily dayflower
  • rdesktop の tips - daily dayflower

    Linux から Windows のリモートデスクトップ(もしくはターミナルサービス)に RDP で接続するのには rdesktop というコマンドがあります。これコマンドラインインタフェースから使うので敬遠する人も多いかも。GUIフロントエンドとして,たとえば GNOME のターミナルサーバクライアント(tsclient)があるので,こちらを使うと使いやすい*1んですが,rdesktop のポテンシャルを 100% 生かしきれない*2ので結局 rdesktop コマンドを直接いじるのが吉です。 $ rdesktop -5 \ -g 1024x768 \ -a 24 \ -N \ -x lan \ -z \ -P \ -r disk:home=/home/dayflower \ -r sound:local \ -r clipboard \ -u dayflower \ -d WORK

    rdesktop の tips - daily dayflower
  • 選択範囲の取得について調べた - daily dayflower

    はてなスターや Tumblr のブックマークレットなど,ブラウザ上の選択文字列をそのままユーザの入力として使えるサイトが増えています。JavaScript からどのようにすれば取得できるのかを調べてみました。 ブラウザ間の差異 DOM における選択範囲の仕様として以下の 2 通りがあります。 W3C Range Microsoft TextRange IE が Microsoft TextRange のみサポートしているのはまぁ予想通り。注意しなくてはいけないのは,W3C Range は,あくまで DOM 上の「範囲」を示すためのインタフェースであることです。ブラウザ上でユーザがどこを選択しているのか,などは UI の実装になりますから,W3C (Range) では規定されていません*1。そこで W3C Range をサポートしているブラウザは,選択範囲をあらわす W3C Range オブ

    選択範囲の取得について調べた - daily dayflower
  • Apache prefork MPM のプロセス数 - daily dayflower

    mod_perl 環境での最適な設定を探るべく,prefork MPM(すなわち古典的 Apache)について調べてみました。実地テストをしたわけではなく,あくまでドキュメントに基づくシミュレーションです。 まず,prefork MPM では ServerLimit ディレクティブはあまり意味を持ちません(MaxClients 以上の値にしておけば OK)ので省略します。 MaxClients = 8 StartServers = 4 MinSpareServers = 2 MaxSpareServers = 6 MaxRequestsPerChild > 0という設定でのシナリオを考えてみました。 コネクション動作 1.........httpd 起動したよ 2.----....StartServers = 4 だから4つフォークするよ 3.C---....1人からリクエストがきたよ 4

    Apache prefork MPM のプロセス数 - daily dayflower
  • Apache 2.2 の internal dummy connection の謎 - daily dayflower

    ab でパフォーマンステストを行っていたんですが,ログに GET / HTTP/1.0" 200 643 "-" "Apache/2.2 (internal dummy connection)みたいなのがたまに出現してました。prefork mpm を使っているんですが, MaxRequestsPerChild でプロセスが再生成されるあたりのタイミングですかね(違うかも)。言及されているページがあまりないので謎のままです。一応実害はないらしいですが。 追記 2006年07月28日 id:naoya [apache] 同じく謎。mod_proxy_balancer の live check 用リクエストかなと思ってたんだけど。 あー,そういえば mod_proxy 使ってました。でも実際どうなんだろ。ということで,今日マスターアップを終えてちょい暇になったのでソースを追いかけてみました。

    Apache 2.2 の internal dummy connection の謎 - daily dayflower
    oinume
    oinume 2007/11/28
    なるほどー。
  • いっちょ Apache のフィルタモジュール講座でも書いてみるか - daily dayflower

    と思ったら知ってることはすべて(しかもそれ以上)mod_perl のドキュメント(⇒mod_perl: Input and Output Filters)に網羅されていました。orz。 Perl に疎くてもフィルタモジュールを書く人なら目を通しておいて損はないです。つかこのレベルのドキュメントが httpd のドキュメントにも欲しかった。 ちなみにさらりと読んで「mod_perl だとレスポンスコンテンツ等にストリーム指向アクセスできるんか」とぬか喜びしたら行ストリーミングをしてくれるわけではなくて,ちょっとがっかり。どういうことかというと,Stream oriented Output Filters のくだりにも書いてありますが,read() や handler の呼び出しが行の途中でぶったぎられている可能性があるということです。だから自分でバッファリングしなきゃいけない。 例題として

    いっちょ Apache のフィルタモジュール講座でも書いてみるか - daily dayflower
  • 永続化Perlでモジュールの再読み込み ⇒ Module::Refresh - daily dayflower

    mod_perl や PersistentPerl (a.k.a. SpeedyCGI) など Perl インタプリタを永続化させる仕組みのものは*1,一度読み込まれたモジュールは,その後ファイルが変更されたとしても自動的に再読み込みしてくれたりはしません。mod_perl では Apache(2)::Reload というモジュールがあり,そのような場合でもうまくとりはからってくれます。 で,かつて PersistentPerl でも同じようなことができないかと思って苦闘したことがあるのですが(SpeedyCGI と module reload - daily dayflower),最近ふと CPAN を漁っていて Module::Refresh なるものがあることを発見しました。Jesse プロダクトです。 This module is a generalization of the f

    永続化Perlでモジュールの再読み込み ⇒ Module::Refresh - daily dayflower
  • VMware Player 2.0 on kernel 2.6.22 (Fedora 7) - daily dayflower

    29:17+09:00">2007/10/02 追記:下記件については Player 2.0.1 で直っています(VMware Server / Player がアップデートしてた - daily dayflower)。つか,そもそも下記のパッチだとブリッジモードでホストとアクセスできなかったりメモリまわりで不安定だったり(これはパッチのせいじゃないかもしれませんが)するので素直に 2.0.1 に上げるのが吉。 Fedora 7 の kernel が 2.6.22 にあがってました。で,当然のように vmware-config.pl がうまくいきませんでした。via Linux 2.6.22でvmware-modulesがビルドできない問題に対処 - 試験運用中なLinux備忘録 で解決策を発見。 http://www.vmware.com/community/thread.jspa?me

    VMware Player 2.0 on kernel 2.6.22 (Fedora 7) - daily dayflower
  • SVNParentPath 設定するなら SVNListParentPath on も指定 - daily dayflower

    以前も書きましたが mod_dav_svn で SVNParentPath を設定すると,レポジトリを作成するごとにいちいち httpd.conf を書き換える必要がなくて楽なのです。唯一困っていたのが,その SVNParentPath 自体にアクセスすると Forbidden となってしまうこと。ログを見ると,「The URI does not contain the name of a repository」と怒られるので,これは mod_dav_svn 自身が出しているみたいですね。 trac の TracEnvParentDir では,親ディレクトリにアクセスすると各子プロジェクトページへのディレクトリリストが出力されて便利なんで,同じようにしたい。 で Google 先生に聞いて, Subversion Users: Browse repos available under SV

    SVNParentPath 設定するなら SVNListParentPath on も指定 - daily dayflower
  • Opera を使っている・いた理由 - daily dayflower

    OperaなFriendの話とか聞いてると「なにゆえにOpera????」って思う。悪い意味じゃなくホントに気になる今日この頃 http://caramel-tea.com/2007/04/opera/ この記事の感想 Twitter 流行ってるんだなぁ… ヘビー Opera ユーザーは ini ファイルばりばりいじってるんだなぁ 私自身は,NN→IE→Donut系→Opera (2年ほど)→Firefox と乗り換えてきて,現在は, 会社では Firefox メイン 家の Linux マシンでは Opera メイン(Windows マシンでは Firefox メイン) て感じです。 先にあげたとおり ini ファイルのカスタマイズはほとんどしないライトユーザですが,Opera を使っていた・使っている理由を列挙すると Opera は軽い 初めて Opera を入れたころは別に軽くもないじ

    Opera を使っている・いた理由 - daily dayflower
    oinume
    oinume 2007/04/30
  • G965Q965 で 4GB - daily dayflower

    Intel の G965 チップセットの載ったマザー(DC965SS)に 2GB * 4 = 8GBメモリ載っけてるけど Linux が起動に超時間かかるし起動しても遅い。 http://naoya.g.hatena.ne.jp/naoya/20070424/1177405262 うちでは 4GB でももたついてますがなにか ヽ(´〜`;) どうも x965 チップセットまわりなのか Core 2 Duo なのかわかりませんが,このへんでまともに Linux を動かせたためしがまだないです。 FC 6 以下だと起動時に pci=nommconf がひつよう CentOS 5 だとそこは自動でやってくれるようになったみたい clock が安定してないとか文句をいわれる 気持ちディスクが遅いような…ディスクコントローラまわりがきちんと認識されてないような 今日は家に帰ってきてしまったんで私んと

    G965Q965 で 4GB - daily dayflower
    oinume
    oinume 2007/04/26