水曜日, 6月 29, 2005

atomをRSSに変換

こんなページを見つけました。
atomのURLを送信するとRSSに変換してくれます。

これを使って、wget~なんていうのをcronに登録すればうちのサイトもRSSに対応だ!なんて思ってました。
用途は主にmixiで日記の更新が反映されないことだったんですが、じつはmixiがこっそりatomに対応していました。なんかタイミング悪いですね。
今までRSSリーダーで読んでくれてた人もこれで安心!なんていおうと思っていたのに。。。

なのでこの計画はお蔵入り、と思ってたら今度はmixiのバグか、更新は表示されるけどそのリンクが正しくない!
僕がRSSに対応するのが早いか、mixiがバグを直すのが先か、勝負ですね。。。負けたい。

tcpdumpでパケットを見る

tcpdumpです。
インターフェイスを指定して、そこを流れるパケットをキャプチャーすることができます。

これをファイルに保存しておいて、stringsを使って中身を見ることができます。
まあ、本気で解析するにはちょっと使いにくいツールかもしれませんが、どんな感じでデータがやりとりされているかイメージがわきます。

ついでに妄想も膨らんでしまうので大変です。

火曜日, 6月 28, 2005

Debian GNU/Linux で tmpfs を使おう

というわけでtmpfsです。
tmpfsとはなにかというと、メインメモリを使うファイルシステムです。RAMディスクなわけですよ。

なので速い!(はず)
頻繁に読み書きするようなファイル(で、しかも一時的なもの)はここにおいておくとよいですね。

tmpfsのすごいところは、実際のメモリ上のサイズは動的に変化することです。なので、どれくらいのファイルを置くために、どれだけのサイズをマウントしようかなんて気にしなくてもいいです。なんて親切なんだ! まさにシステムの鏡ですね。


Debianの場合だと、ぼーっと、「次へ」、「次へ!」、「次へ!!」なんてインストールすれば最初から利用できます。
/dev/shm がそう。ここをそのままディレクトリとして使ってもよいし、生のデバイスを使ってるみたいで気持ち悪い人は普通にマウントして使うことも出来ます。
僕の場合はなんか、ファイルがもうあったので、そして多少面倒な気持ちもなきにしもあらずだったのでマウントしたりせずにそのまま使ってます。

月曜日, 6月 27, 2005

info を使おう

sar を使おうの問題、コメントいただいたおかげですっきりしました。ありがとさん。
しかし、ひとつ問題が。。。

自分でも「一行で書こう!」と思った時にdateコマンドを調べたんですよね。
だから、コメント見て「?? yesterdayなんてオプションは記憶にないぞ!」とか思ったわけです。
実際、manをもう一度見返してみても載ってません。

そこでinfoの登場です。
ばっちりのってました。やられた。
infoは長くなるのでついつい敬遠してあんまり見たことなかったんですが、これからはちゃんと読みます。。。反省を込めて。愛はこもってません、あしからず。でもちょっとひきこもりかも。山篭りなんて健康になれそうでよいですね。コウモリにも会えそうだし。ヤモリやイモリも、、、こう、もり あがりにかけたところで終わっておきます。

木曜日, 6月 23, 2005

Debian GNU/Linux で sar を使う

コンピュータの負荷を知るために、今まで
0 10 * * * vmstat 3600 24
こんな感じでcronを使っていました。
sarとは、システムの統計情報を出力するコマンドです。vmstatの親戚だと思ったらいいです。実際、下の方法でインストールすると iostatや、mpstatといった、stat兄弟もインストールされます。

まあ、これで十分なところもあるんですが、プロセスが常駐してるのがうっとうしくなってきたのでsarを使うことにしました。
sarでは、プロセス、メモリ、ディスク、ネットワーク(ソケット)、デバイス、割り込み要求(IRQ)なんかの統計値が詳しく出力されます。
プロセスごと(子プロセスを含んだり、含まなかったりできる)や、インターフェイスごとにも出力できるので障害の調査にも使えます。


使いかたは、
まず apt で sysstat をインストール。
後は統計値を見たいときにsarを実行すればいいです。


僕は不精なので、
--------------------------------------------------------
#!/usr/bin/perl

use strict;
use warnings;

my $time = time - 86400;
my $day = ( localtime $time )[3];
my $filename = sprintf '/var/log/sysstat/sa%02d', $day;
print `sar -A -f $filename`;
--------------------------------------------------------
こんなスクリプトをcronに登録して、毎日メールで送ってもらってます。
できれば一行でcronに登録したかったけど良いやりかたが思い付かなかった。月をまたいだ昨日の日付がとりづらい。エレガントな方法求む!


でも、ほんとのところはたいして見てないです。
cactiのグラフを見てれば大体概要はつかめます。世の中グラフィカルでないと。
問題がありそうだったら、sarの出力を調整してじっくり見たりすればよいですね。

金曜日, 6月 17, 2005

Debian GNU/Linux 3.1 Sarge

ついにDebianの新しいバージョンがリリースされました。
当日は、「米国時間で今日だから。。。」とか思って5時、6時くらいにそわそわしてました。
で、「おぉ〜〜」となったわけです。めでたい。

で、それ以来セキュリティーアップデートのインデックスが壊れていたんですが、やっと直ったみたいです。というか、リリースされたばかりだったのでアップデートがなかっただけかも知れませんが。
これでaptですっきりできます。

木曜日, 6月 16, 2005

ムームードメイン

これまではドメインを取るときにはお名前.comを利用してきました。
もうひとつ欲しくなったので安いと評判のムームードメインを使ってみることにしました。

これがなかなかいい感じです。
まず、単純にひとつのドメインあたりのお金が安い。素晴らしいですね。
次に、お名前だと有料サービスのWHOIS代行が無料です。だいたいが、こんな手間のかからないサービスは無料にするべきでしょ。納得ですね。
細かいところでは、ネームサーバを無駄に2つも登録しなくていいところもいいです。主要なサービスを冗長化していないのにネームサーバを冗長化する意味があるのか。というか、強制するのは変かと。

あとは、コントロールパネルもお名前より使い易いです。というか、お名前のインターフェイスは確実に標準以下です。
今度の更新時にはkumicho.netもムームーに乗り換えようと思ってます。


実はGMOと資本関係があるみたいですね。お名前.comは大丈夫なんだろうか。

月曜日, 6月 13, 2005

さくらインターネット

家のPCを移そうと思って、さくらインターネットに申し込みをしていました。
で、今日、請求書がきました。ほんとに請求書だけ。いや、まあいいんですけど。愛想ないなあ。

これで僕もサーバーのオーナーです。いや、いままでもそうだったのだけど、なんとなく雰囲気が。

ところで、なかなか、いろいろわかりにくいところもありました。
申し込みの時に、支払いの方法を振り込みか引き落としかを選ぶんですが、なんと会員のページからはクレジットカードが使えました。最初から教えてくれ。僕、カード好きなんですよ。
とある理由でメインバンクを替えようと思っていたので、どちらにしようか結構悩みました。で、結局振り込みを選んで、さっきコンビニに払いに行ったらお金が足りなくて恥もかきました。
ついでに言うと、最初の申請だから”ただ”だと思ってたIPアドレスが有料でした。びっくりですね。これは僕の勘違いな気もするけど。

まあ、結論をいえば、カードで支払いができてよかったし、IPアドレスも申請通り16個取得できたのでよかった。なんだか丸く収まった感じです。

と、安心していたらあとでこんなことになってしまいました。

金曜日, 6月 03, 2005

perlIO

PerlIOを使ってみました。すごい便利。
と書いてみて、そうかな?って気がしてきました。どちらかというと、クールかも。

gzipで圧縮されたデータ($buff)があるときには、こんな感じで解凍できます。
--------------------------------------------------
open FH, '<:gzip', \$buff or die $!;
$content .= $_ while ;
close FH or die $!;
--------------------------------------------------
1行目では変数をファイルハンドルとして開いています。
2行目でファイルハンドルから読み出されるデータは解凍されています。
簡単に言うと、PerlIOを使うと入出力の際にフィルタを適用できるわけです。プログラムから見たファイルハンドルはフィルタをかぶった疑似ファイルハンドルなわけですから、奥にいるのが変数なんかでもいいわけですね。でも変態だったらちょっといやな感じです。いないか。

と、書いて気がついた。
だとすると、と<$fh>にはもう性能差はないのかも知れませんね。昔は"直接"と"間接"だったわけだけど、今は両方間接になったはずだし。

ざっと調べてみたところ、
1. 文字コードの変換系(Shift-JIS ←→ UTF-8や改行文字の変更、MIMEなど)
2. 暗号系(CBCやMD5など)
3. 圧縮系(gzipなど)
の分野のフィルタがあります。


本当は上の例みたいに使うつもりはなかったんですが、ソケットとgzipフィルタの相性が悪かったので変数を開き直すなんておかしなことをやってます。

ただ、使ってみて意外といい気がしました。
これはインターフェイスの統一ですね。
どれもデータを受け取って変換して出力するだけなのに、モジュールごとにメソッド名はきっと違うでしょう。これを覚える必要がないのがすばらしい。頭の容量少ないんですよね。


ちなみに最初に”使ってみた”とか書いてますが、意識して使ってみたというだけで、みんな知らないうちに使っているのだった。。。