2010-01-01から1年間の記事一覧

open proxy 経由のsmtp

spamの温床になるのでポート制限をしていないopen proxyはやめましょうっていう。当たり前だけど。 apacheのmod_proxy を使う話 http proxyサーバに接続後 CONNECTメソッドでsmtpサーバへ接続 apache で実装する場合、mod_proxy、mod_proxy_connect を有効に…

pam + opensshでユーザごとのログインIP制限

たいていは/etc/hosts.allowで事足りるんだけど、厳密に制限したいなっていう時に。いろいろman 見てたらpam使えばできそう。ref. man sshd_config man pam man access.conf opensshの設定 最近のはデフォルトでyesになってるはず。 UsePam yes pamの設定 /e…

Params::Validateでパラメータのチェック

perldocでソース読んでたら出てきたので。メモ初級編。サブルーチンで使うと幸せになれそうですね。 引数が与えられたかどうかのチェック 型までは見ない。 use Params::Validate qw(:all); sub foo { my $args = validate( @_, { hoge => 1, ## mandatory (…

perlでNetAppをごにょごにょ

Phillip Moore / NetApp-1.1.2 - search.cpan.org cpanにNetAppモジュールがあったのを発見したので。さっそく使おうとしたけど、たぶんNetApp::Filer がおかしい?くてtelnet loginできない。まぁtelnetやめてsshにしろっていう話でもあるけど。 perldoc -m…

redhat networkのパッケージからheartbeatがなくなってたのでsourceforgeからdonwload

redhat 5.5でheartbeat入れようとしたらyum install heartbeat で Nothing to doと言われたのでまごまごした。ちなみにCentOS 5.5 では普通にyum上のリポジトリにあるようです。 sourceforgeからdownload http://sourceforge.jp/projects/linux-ha/releases/…

スカラコンテキストでのglob関数の挙動がよくわからない

なんか初歩的なんですけど。以下のファイルがある状態で。 $ ls [abcd] a b c d次のコードを実行。 use warnings; use strict; my @file = qw(a b c d); print "### scalar context\n"; for my $file (@file) { print scalar glob $file; print "\n"; } prin…

perlでfork

use warnings; use strict; my $pid = fork; if ($pid) { ## parant process } else { ## child process } waitpid($pid,0); waitpidをしなかったら、子プロセスが残っていても親プロセスは先に終わってしまう。 指定した数だけfork my $max_process = 10; m…

apache + subversionのwebdav上のhtml/textファイルを正しく開く方法

思いつきエントリで。リポジトリのファイルをwebから直接参照したい場合に。 通常のsubversionの設定だと、index.html とかのファイルにアクセスしてもContent-typeがplain/textなのでhtmlソースが表示される。また、ただのテキストな設定ファイルでもエンコ…

debian/ubuntuでutf8対応のtex

doxygenがtexも作ってくれるので、懐かしさついでにちょっと調べた。 platexでオプション指定とかもあったけど、色々ぐぐった結果、内部処理からutf8に対応したuptexというのがあることが判明。 uptex http://homepage3.nifty.com/ttk/comp/tex/uptex.html h…

mysql 5.1.49 で mmeasureのinnodb statusが表示されない

元々mmeasureがmysql 5.0までしか対応してないんだけど http://d.hatena.ne.jp/hogem/20090827/1251381817 この辺で一応対応できてた。で、最新のmysql 5.1.49にすると"InnoDBステータスを表示"をクリックしても InnoDB と表示されるだけでステータスが出な…

doxygenでドキュメントの自動作成

自動つっても妖精さんが作ってくれるわけではなくて、ソースコード中に特定の書式で書いたコメントを元に、ドキュメントを作成するツール。クラスの階層とか関数、変数の説明とか。あとgraphvizと連携して図も作ってくれるらしい。クラスの継承図とか。これ…

varnish cacheでコンテンツのキャッシュ

varnish cache リバースプロキシ専用サーバ。キャッシュルールを細かく設定できるので、色々使えそうだし勉強がてら遊んでみた。 http://varnish-cache.org/wiki/Introduction http://varnish-cache.org/docs/ http://d.hatena.ne.jp/keita_yamaguchi/200801…

mMeasureのinstall

久々にinstallしてみたら、公式通りにやっても一部動作しなかったので復習メモ。(昔はどうやってinstallしたんだろ。。。。) mmeasure mysql(主にMyISAM)のパラメータ、ステータスを見てアドバイスしてくれるsoftware。 http://mmeasure.sourceforge.jp/inst…

Rangeリクエスト勉強

ボディの一部分を取得するとき。レジュームによる再DLとか。応答は206 Partial Contentになる。ただし、apacheでcgi/ssiを使っていて、Centent-Lengthを返さない場合はRangeリクエストされても、200 OKでボディ全体を返す。cgi/ssi でもアプリ側でContent-Le…

apacheはContent-LengthレスポンスヘッダがないとRangeリクエストが有効にならない

っていうことを知らなかった。versionによるかも? 試したのは2.2.15。rangeリクエストはレジュームによる再DLとかで、コンテンツの一部を取得したいときに使う。他には携帯で動画をDLして再生するときとかに使われてる? http://www.studyinghttp.net/heade…

ipmitool 復習 - linuxのIPMItoolでIPMI操作

man ipmitool IPMIの規格を利用して、各種設定、操作する。 IPMIのIP設定 IPMIのユーザ設定 電源off/on コンソールログイン BIOS、GRUB設定 設定しているIPMIのIP表示 # ipmitool lan print ipmiの設定変更 IPアドレスとか。 # ipmitool channel info 2 ## =…

pythonで正規表現

import re で。詳細はpydoc re re.compile コンパイルした正規表現オブジェクトを返す re.match 文字列の先頭からマッチさせるときに re.search 文字列のマッチを実行 text = 'hogehoge 100' matchobj = re.search( r"\d+", text) result = matchobj.group()…

Smart::Commetns

今さらだけど、めちゃ便利ですよね。デバッグ終わったらuse Smart::Comments; をコメントして無効にすればいいだけだし。プログレスバーとか便利便利

mod_deflateで動的コンテンツにContent-Length レスポンスヘッダを追加する

なんか噂に聞いたのでやってみた。携帯向けではContent-Lengthが必須ヘッダ(docomoとsoftbank)となっているけど、cgi/ssiだと (cgiはアプリ側で記述していなければ) Content-Lengthヘッダは追加されない。でもmod_deflateで圧縮すればapacheが勝手に追加して…

perlでRegex::Listを使って正規表現を効率良く書く

例えば qr/foobar|fooxar|foozap|fooza/ と書くと左の単語から1つずつ順番に評価されるので数が多いと性能が落ちる。それを、カッコでグループしてくれたりして最適化してくれるモジュール。 use Regexp::List; my $l = Regexp::List->new; my $re = $l->lis…

M/B交換、CPU交換後にkernel panicになった場合

こないだサーバ障害で発生した。mkinitrdでinitrd再作成する必要があるらしい。 redhat系の場合 redhat、centos等のCDを入れて、rescueモードで起動する。 # chroot /mnt/sysimage # cd /boot # mv initrd-<kernel ver>.img initrd-<kernel ver>_old.img # mkinitrd initrd-<kernel ver>.img <kernel ver></kernel></kernel></kernel></kernel>

virtusertable でワイルドカード的な設定

postfixもたぶん同じ。MTAは普段つかわないから忘れる忘れる。 webmaster@example.com root @example.com hogeとすると、webmaster@exmaple.comはrootへ。それ以外の@example.comのメールは全てhogeへ。

redhatでdeviceを再認識

HDDとか。 http://kbase.redhat.com/faq/docs/DOC-18225 再スキャン # echo "- - -" > /sys/class/scsi_host/host1/scan 削除 software raidしてたらmdadmとかは削除しておく。 デバイスの削除(成功すれば) # echo "scsi remove-single-device <H> <B> <T> <L>" > /pro</l></t></b></h>…

bash の set -e

http://www.gaku.net/ukki/sh%E3%83%A1%E3%83%A2.html#h1 postgresqlのinitスクリプトで見て、なんだこりゃと思った。 スクリプト内で実行したコマンドが0以外を返すと、そこでスクリプトを終了する。エラーが起きた場合はそのまま終了して欲しいときは便利…

yum で group 情報表示

普段aptばっかりだからyumは良くわかんね。 yum grouplist yum groupinfo group_name

python勉強 - 変数を文字列に展開

$ cat foo.py a = 'hoge' b = 'fuga' print 'foobar %s %s' % (a, b) print 'foobar %(a)s %(b)s' % locals() $ python foo.py foobar hoge fuga foobar hoge fuga

snmptranslate - mib oidと名前の変換

普段あんまし使わんからすぐ忘れちゃう。 oid to 名前 $ snmptranslate .1.3.6.1.2.1.2.2.1.10 IF-MIB::ifInOctets 名前 to oid $ snmptranslate -On IF-MIB::ifInOctets .1.3.6.1.2.1.2.2.1.10 オブジェクトをツリー表示 $ snmptranslate -Tp引数でOIDを指…

openssh 4.9以降で正式にサポートされたchroot sshで公開鍵認証を使う場合の罠

ref. openssh 4.9以降でchroot ssh chroot するディレクトリを /chroot の例 ↑のエントリにも書いたように、以前のpatch版のchrootの場合は sshd_configには特別に記述をせずに、/etc/passwdに hoge:x:1000:1000::/chroot/./home/hoge:/bin/bashと書くだけだ…

iPhone4 予約

twitter見てると、ソフトバンクの予約システムがダウンして混み合ってる、なんて見かけたけど。うちの近所では普通にできた。1時間待ちくらいで予約でけた。あとはdocomo(紛失して停止中)からMNPするか、新規で買うかどっちか決めないとなー。

docomoの携帯なくした

一連のメモ docomoに電話して利用を中断する http://www.nttdocomo.co.jp/support/procedure/change_release/trouble/index.html ネットワーク暗証番号、氏名、電話番号等を答えて中断する旨を連絡する 中断中も基本料金は払う必要あり 電源が入っている場合…