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

接続しているネットワークの変化をトリガとして、任意のスクリプトを実行する方法 - 例えばSSHトンネルの掘り直し

Mac

いままで、 小さいターミナルでこんな感じでSSHのトンネルを掘って while true; do rebuild-ssh-config; ssh -N -o "BatchMode yes" -L ... -R ... TUNNELHOST; echo retry; sleep 3; done ネットワークが変わった場合(会社に着いたとか家に着いたとか)、手…

ソースから自前ビルドしたソフトウエアの効率的な管理方法

ぼくは長年こういう方法で管理してますよ、というお話です。Linuxです。 ディレクトリレイアウト概観 たとえば、asoとbmdという名前のソフトウエアをインストールしている状態はこんな感じ: /usr/local/ ┬ app/ ┬ aso → aso-1.3 │ ├ aso-1.2/ ┬ bin/ ┬ armor…

く、くやしい・・・foregroundで起動できるなんて・・・ビ

2009-12-15 追記 nginxのオプションが間違ってたので修正>< × -g daemon=off ○ -g "daemon off;" 2009-12-16 追記 Apacheのrunファイルにpgrphackと補足文を追加。daemontoolsのrunファイル。 Apache #!/bin/sh exec 2>&1 CONF=/usr/irori/etc/apache/http…

実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ)

レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン でも掲げたゴールである、「マスタが落ちてもぐーすか寝ていられるようにしたい」がほぼできたので、ほとんどサービスが停止することなく、フェイルオーバする様をスク…

あるあるおハマり大事典 - InnoDBなのに行ロックしないの

drop table if exists t; create table t ( iid int ,nid int ,bid binary(3) ,msg varchar(69) ,key (iid) ,key (bid) ) ENGINE=InnoDB; insert into t values (1,1,1,"ichi"),(2,2,2,"ni"),(3,3,3,"san") ,(4,4,4,"si"),(5,5,5,"go"),(6,6,6,"roku") ; な…

West 5 Room on 2009-09-11

DeNA Conference Room on 2009-09-11

Six Apart Auditorium on 2009-09-11

West 5 Room on 2009-09-10

DeNA Conference Room on 2009-09-10

Six Apart Auditorium on 2009-09-10

Pre-YAPC mini conference with Yokohama.pm on 2009-09-09

YAPC::Asia 2009 movie list

2009-09-09 Pre-YAPC mini conference with Yokohama.pm on 2009-09-09 2009-09-10 Program on 2009-09-10 Six Apart Auditorium on 2009-09-10 DeNA Conference Room on 2009-09-10 West 5 Room on 2009-09-10 2009-09-11 Program on 2009-09-11 Six Apart …

vm.overcommit_memory = 2 のときに、実際の上限と今現在の値はどこで確認できるか?

(vm.overcommit_memoryの説明はぐぐってください: google:vm.overcommit_memory)例えば vm.overcommit_memory = 2 vm.overcommit_ratio = 90なときに、実際の上限と今現在の値はどこで確認できるか? the total virtual address space on the system is limi…

レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン

MySQLで、レプリケーションベースのHAな構成について考えたメモです。3台(というか2台+1台)がいいかなぁと思っていて、前半はその理由を、後半では{マスタ,スレーブ}が{再起不能になった,ちょっとダウンしてすぐ復帰した}場合のリカバリプランについて書き…

多すぎて使えないオプション選手権 - coreutils-7.6 編

さあ!栄冠の一位は誰の手に!? 発表はわっふるわっふるの後で!! わっふる! わっふる!!

ターミナルで使えるリファレンスマニュアル - プログラミング言語編

C++ リファレンスビューワ cppref が凄い! - TokuLog 改めB日記 他の言語のが気になったので、twitterできいてみたら、 manやperldocみたいな、Ruby、Python向けのターミナルで使えるリファレンスってなにがあるすかねー? いろいろ教えてもらったのでコマン…

Linuxでmysqldがcoreをお吐きになりませぬ

以下、Linux kernel 2.6 でのお話です。 vanilla な Linux kernel 2.6.29.1 MySQL 5.1.35とかそのへん ぼくが改めて言うまでもなく、プログラム(mysqld)が異常終了したときなどに吐かれるcoreファイルは、その原因を探る上で非常に有益です。が、なぜか、 se…

keepalived.confのシンタックスチェックツール「keepalived-check」「haskell-keepalived 」が凄い!

id:viverさんとid:maoeさんが(7月ぐらいに)やってくれてました。 http://github.com/frsyuki/keepalived-check http://github.com/maoe/haskell-keepalived ずいぶん前からkeepalived.confのシンタックスチェックをするプログラムないかなーと思ってました。…

YAPC::Asia 2009で「『Ficia』インフラとPerlにまつわるエトセトラ」というタイトルでしゃべってきました

YAPC::Asia 2009 第一日目で「『Ficia』インフラとPerlにまつわるエトセトラ」というタイトルでしゃべってきましたのでその資料を公開します。『Ficia』インフラとPerlにまつわるエトセトラView more documents from Masaaki HIROSE.他の方のスライドも http…

YAPC::Asia Tokyo 2009のチェックインにはQRコードが必要です

いよいよ今晩からYAPC::Asia 2009がはじまりますね!さて、入場に際しては YAPC::Asia Tokyo 2009では紙媒体のチケットを発行していません。チェックインのためにはQRコードを用いて参加者を認証いたします。 認証用QRコードを入手するには、本サイトにログ…

安全に一気にファイルの内容を書き換える

ファイルを書き換えるときに、単純に open, write, close だと、そのファイルの性格にもよりますが、問題になるケースがあります。 書き込み処理中に異常終了しちゃった 例えば open my $fh, '>', '/foo/bar'; print $fh gen_header(); print $fh gen_sectio…

YAPC::Asia 2009 で「インフラのはなし(仮)」について話します

このところ、MySQL と Nagios と mod_perl 関連のエントリをいろいろ書いていますが、それは、スケールアウト可能で、かつ、管理が容易なネットワーク・サーバインフラを、今まさに作っている、という理由があるからです。ただ、ブログエントリだとどうして…

Emacs 23.1よもやま

3月ぐらいの23.0.51から23.1への移行。 sense-region が動かなくなった k1Lowさんが矩形選択(のハイライトのfaceがちゃんと動くように)できるようにしてくれました!\(^o^)/ http://gist.github.com/171931 (sense-region.elでいじるところ) http://gi…

InnoDBテーブルでunique keyがある場合、それをprimary keyにするべきかどうか

InnoDBなテーブルのお話です。とあるテーブルで、いくつかあるカラムのうち、ただひとつのカラムがunique keyになり得るものだとします。こういうときは、そのunique keyは無条件でprimary keyにしたほうがイイ!と思ってたんですが、調べてみると必ずしもそ…

keepalivedのnb_get_retryの動きが不思議な#2

keepalivedのnb_get_retryの動きが不思議な件 の続き。今回は keepalived 1.1.17 で試してみたす。ヘルスチェック (HTTP_GETの場合) のループ間隔に関係ありそうな設定項目はこの3つ。 virtual_server group delay_loop (delay timer for service polling) r…

keepalived と 当ててるパッチたち

今使ってるのは 1.1.17 、その前に使ってたのは 1.1.15 す。 keepalived 1.1.19 1.1.19ではpidfileとnopreemptパッチは取り込まれているので、 keepalived-1.1.13-extcheck-1.0.patch だけ当てています。 keepalived 1.1.17 keepalived-1.1.13-extcheck-1.0.…

ブラウザのリクエストに応じて、予め圧縮しておいたのか生のか選んでjsやcssを配信する方法 〜Apache 2.2編〜

ググるといろいろできますけど、若干おハマりしたので。こんな設定で: # Expires*は圧縮には関係ないけど ExpiresActive On ExpiresByType application/javascript "access plus 1 years" ExpiresByType text/css "access plus 1 years" # こっちが本丸 <Location ~ "\.(js|css)(\.(js|css|gz))?$"> Opt</location>…

gitのcommit、push待ちの状態をプロンプトに表示すると結構便利

git

gitのブランチ名をプロンプトに表示すると結構便利 の続き。gitでcommitし忘れ、pushし忘れないように、 _color_() { color=$1; shift echo -e "\e[${color}${@}\e[0m" } fg_black() { _color_ "30m" $@; } fg_BLACK() { _color_ "30;1m" $@; } fg_red() { _…

Eye-Fi用のアップローダブリッジ - Doumeki (百目鬼) - を作りました

Eye-Fi用のアップローダブリッジを作りました。名前は Doumeki (百目鬼) といいます。 http://github.com/hirose31/doumeki/tree/master Doumeki を使うと、Eye-Fi からアップロードされた写真を複数のフォトストレージにアップロードすることができます。図…