FreeBSD 7.1へようこそ

第2回 FreeBSDで安心・快適通信【I】ホームサーバでエコメール

この記事を読むのに必要な時間:およそ 6 分

メソッド実行

[手順0]ファイルを丸ごとコピー

日本に置いてあるメールサーバがUNIXの場合※2⁠,メールの本文は/var/mail/<ユーザ名>に置いてあるので,これを単純にscp(secure copy)してくればよい。

※2)
筆者の学科ではメインサーバは(残念ながらというか)Debian である。筆者の研究室で管理するバックアップサーバは安全のためもちろんFreeBSDにしてある :-)。

ただし,既読のメールは二度は読みたくないので,サーバから削除したい。ということで,

日本のサーバにログイン
         ↓
/var/mail/mita を自分のホームディレクトリにコピー,gzip
         ↓
/var/mail/mita に /dev/null を上書き
         ↓
ログアウト,SCP

という,少し込み行った手順を行っている※3⁠。

※3)
さらに筆者が使っているサーバでは,新着メールが無いときには「Don't delete this message」という内容のメールが保存される仕組みなので,実際には「空メールを示すメール」を上書き保存している。

ホスト「remotehost」上の「mita」を取ってくる手順は以下のとおり。

> ssh remotehost 
(パスワードやパスフレーズを入力)
$ cp /var/mail/mita . ; cat /dev/null > /var/mail/mita; gzip -9 mita
mita.gz already exists -- do you wish to overwrite (y or n)? y
$ logout
> scp remotehost:mita.gz .

この例では,安全のためにファイル「mita」をgzip圧縮している。というのは,不注意にコピーの手順を二度繰り返すと,一つ前のメールの内容が永久に消えてしまうから,gzip時にで上書き確認をする時間で,誤っていた場合気付くだろうという一種のフェイルセーフである。この心掛けのために助かったことが数回ある。

[手順1] 展開,ダウンロード

圧縮ファイルを展開して,/var/mailにコピーする。

> gzip -df mita.gz
> cat mita > /var/mail/mita

はじめて使うときは,/var/mail/mitaが存在しないかもしれない。そのときは

> cat mita > /var/mail/mita
/var/mail/mita: Permission denied.

のようにエラーとなるので,rootになってファイルを作製する。

# touch /var/mail/mita
# chown mita:mail /var/mail/mita
# chmod 600 /var/mail/mita

Thundebirdであらかじめ作製しておいた「popa3d」アカウントでメールを読むと,パスワードを聞かれる。入力するとヘッダのダウンロードがはじまる。ローカル接続なので通信速度での律速はなく,Thunderbirdの処理スピードでヘッダが展開されてゆく。1000通といった量のヘッダがものすごいスピードで展開される様は圧巻である。

[手順2~4]メールの整理,本文取り込み

先程とまったく同じように,ヘッダの件名やThunderbirdのスパムフィルタを参考に,不要なメールをゴミ箱送り,ゴミ箱を空にして,再び「popa3d」アカウントでメールを読んで不要なメールを削除する。あとはWanderlustやsylpheedなどのメールソフト(MUA)でlocalhostからメールを読めばいいのだが,せっかくローカルにメールがあるメリットを活かそう。MHをインストールしたので使ってみよう。

> inc <Enter>

と入力するたけで/var/mail/mitaの内容が /home/mita/Mail/以下にとりこまれる。これで終了である。

パフォーマンス比較: インターネットへの接続時間比較

道中のアトランタ空港で,飛行機に載っていた半日のあいだにたまったメールをダウンロードする実験を行った。半日の間にたまったメールは1080Kバイト。アメリカとの間は最近では太い回線が引かれているので,昔ほどのストレスは無いが,それでも明らかに差を見ることができた。

メソッド1 - Thunderbirdでヘッダを読む場合:合計187秒
[step1]ヘッダの取得: 45秒
2009年 3月 1日 日曜日 05時49分40秒 JST ヘッダ取得開始
2009年 3月 1日 日曜日 05時51分25秒 JST ヘッダ取得終了
[step2]ヘッダの処理(手動): 6分
[step3,4]ヘッダの再取得,実体ダウンロード: 2分22秒
2009年 3月 1日 日曜日 05時57分49秒 JST ヘッダ再取得開始
2009年 3月 1日 日曜日 06時00分11秒 JST 本文ダウンロード完了
メソッド2 - /var/mail/ファイルを丸ごとダウンロードの場合: 16秒
2009年 3月 1日 日曜日 05時51分38秒 JST コピーコマンド発行
2009年 3月 1日 日曜日 05時51分54秒 JST コピー終了

実験ではgzipしないファイル「mita」を,scp -Cオプションで圧縮して送ったところ,アメリカとの間で218kバイト/sのスピードが確認できた。

mita      100% 1090KB 218.1KB/s   00:05

結果,187秒対16秒と,10倍以上のスピードアップ効果があることが明らかになった。日本のサーバにログインしてファイルを準備する時間もほんの10~20秒程度だから,半日分の1Mバイト程度のメールファイルであれば,ものの1,2分でダウンロード可能なことがわかる。

筆者は昨夏,フランスの田舎から2週間ほどメールにアクセスしたのだが,このメソッドを使って,ダウンロードを始める直前にInternetを開き,終了した瞬間にInternet接続をまめに(せこく?)切ることで,2週間の合計で2時間以内という驚異的な短かさで,投稿論文などの割と重めのデータも含む,全てのメールをダウンロードできた。通信にかかったコストはUSBディジタル電話機の代金(29ユーロ)のほか,Orange(France Telecom社)の2時間接続アカウントの15ユーロのみ。かなりのお値頃感である。わが家のこの夏のエコ(ノミー)に貢献したと思っている。

著者プロフィール

三田吉郎(みたよしお)

東京大学 大学院工学系研究科 電気系工学専攻准教授。講義「電気磁気学」「わかる電子回路」やマイクロマシン研究の傍ら,FreeBSDの普及,開発に尽力する。FreeBSD ports committer。国際派を自任し,2007~8年9月までフランス国立情報学研究所(INRIA)招聘教授。共著書に「FreeBSD徹底入門」(翔泳社),「FreeBSD Expert」など。