連載 . /JavaServer Pages— C7D18232E4854474018229734636F4D0 のような値か表示されます。 たとえは、すべての JSP ファイル内にセッション ID と URL をログに出力するようなコードを入れておけば、 ューザーがどのような順番でページにアクセスしたかを追 跡できます。 ・最後にアクセスした日該リ 最初にアクセスした日該リ ・同一セッションとみなす最知間間隔 くつかのメソッドが用意されています。 session オプジェクトには、時間をコントロールするい 時間のコントロール 90 インターバルの設定に不都合はありません。 報を表示しています。この部分は削除してもセッション・ ッション ID やアクセス時刻などのセッションに関する情 session ・ jsp の 12 ~ 17 行目では、重川忍のためにセ する JSP コードです。 ションとみなされるアクセス間の最大の時間間隔 ) を指定 session. jsp は、セッション・インターノヾノレ ( 同一セッ したものです ) 。 JSP ページ session. jsp です ( 行番号は説明のために追加 図 6 は、一己の 4 不頁のメソッドを使ったサンプルの 1 日 0 時 0 分 0 椡からのミリ秒単位の新直です。 を返すメソッドです。返された値は Epoch ( 1970 年 1 月 クセス日該リ 現在のセッションにおける最後の ( もっとも匠の ) ア 現在のセッションにおける最初のアクセス時刻 それぞ getCreationTime() と getLastAccessedTime() は、 みなす最大の時間間隔を秒単位で指定します。 と指定してください。 te ロには、同一セッションと setMaxInactiveIntervaI ( をれロ l) 時間間隔は JSP ファイルから設定することもできます。 です。 す最たの時間間隔を返すメソッドで、返される値は秒単位 getMaxInactiveInterval() は同一セッションとみな session. jsp の動作の要は 19 ~ 52 行目です。最初に re- quest オプジェクトから interva レヾラメータの値を受け 取り、この値が設定されていなければ (null) 、 27 ~ 32 行 目の FORM タグでセッション・インターバルを入力さ せます。 29 行目を見てください。セッション・インタ→ヾルの 値を入力する INPUT タグでは、現在の値を VALUE 属 性て指定しています。この例の、 value=" く %= session. getMaxInactiveInterva1 ( ) / 60 % > " のように、 JSP の式タグは HTML のタグの内部に組み込 むこともできます。なお getMaxInactiveInterval() は 秒単位の値を返すので、分単位の値に変換するために 60 て割っています。 図 7 は、最初の session ・ jsp の画面です。デフォルトで はセッション・インターバルが 30 分に設定されています。 こで、セッション・インターバルを 10 分に指定して [ 設定 ] ボタンをクリックすると、図 8 の画面か表示されま す。この画面は、図 6 の 35 ~ 51 行目で実現しています。 FORM から渡されたパラメータ値は request 暗黙オ プジェクトの getParameter() メソッドで取得します。 getParameter() はパラメータ値を文字列の形式で返すた め、 setMaxInactiveInterval() メソッドが受け耳る数 値の形式に変換するために、 37 行目で lnteger オプジェ クトの parselnt() メソッドを使っています。 38 行目で セッション・インターノヾルを設定したあと、実際に成疋さ れた値を 41 ~ 43 行目て画面に表示しています。 page 暗黙オフジェクト page 暗黙オプジェクトは、個々の JSP ページのインス タンスにあたるオプジェクトです。ューサーが JSP ペー ジにアクセスすると、 page オプジェクトが 1 つ作られま す。 JSP ページからみれば、 page オプジェクトは自分自 身を表します。 page は Object クラスのオプジェクトですが、 Tom- cat のように WWW サーバーとして動作している場合に は、 javax. servlet. jsp. HttpJspPage インターフェイス を実装する必要があると仕様で定められています。また、 プロトコルとして HTTP を使わない場合には、 javax ・ UNIX MAGAZINE 2002.1
連載 / IJN Ⅸ便利帖ーの 写真 1 標準モードでのメール表示 受信メ印 [ 1 / 2 田朝 国ⅲ yas i ta@kyoto-w 朝 11 / 15 : 40 日 test 12345 日 7 田田 23456 90 234 田 7 田口 12345 田 89 町 345 日 9 ロ 1234567 田 2 4567 田口 12345 日 7B9 町 23 の原因で DNS カリ用できないときに備えて、ふだんから この引数を利用したはうがよいでしよう。 たとえば、和めゞいつも使っているホストで netstat ーⅲ を実行した結果は図 3 のようになります。使いもしないの に IPv6 インターフェイスをアクテイプにしているので、 やたらに行数の多い出力になっています。 ご存しのとおり、携帯電話の画面は一殳にたいへん狭く できています。たとえは私の持っている N501i では、メー ル表小について標準では横 20 バイト ( 写真 1 ) 、縮小表示 て横 15 バイト ( 写真 2 ) までしカ俵示できません。縮小表 示ではいわゆる半角文字も全角で表示されるため、かえっ て 1 行に表示できる文字数か減ってしまいます。これを 超えて続く行を表示させるとかなり見づらくなります。 私はふだんから縮小表示にしているのですが、半角文字 はかりのときは標準表示のほうか見やすいので、これは悩 みどころです。しかし、 1 行が 15 バイト以下になるように しておけば、縮小表示でも行が崩れずに表示されるので、 今回はこちらを採用します。 携帯電話用 daily それでは、前述したような項目についてのチェック結果 を携帯電話に送るイ督はみを考えます。はじめは periodic コマンドを利用するか、このコマンドと同様の仕組みを自 作することを考えたのですが、今回はそれほど大がかりな システムではないので、妾シェル・スクリプトを言当す るだけにしました。拡張生や可用性などに乏しいかもしれ 」 12345 日 7 田口 12345 第い 携帯電話の画面 ませんが、 114 、、ちょっと書いて試してみる " という気軽さは 魅力的です。 以下では、前述した各項目についてどのようなチェック をおこない、その結果をどう整理して送信するかを説明し ます。 ティスクは溢れていないか これは前述のとおり df コマンドを利用します。しかし、 daily のように df コマンドの結果をそのまま載せたので は、携帯電話では見づらいメールになってしまいます。そ のため、図 2 にある項目のなかから、、℃ apacity" ( 使用 量の割合 ) と、、 Mounted 。Ⅱ " ( マウント位置 ) のみを報告 するようにします。この 2 つの情幸肋ゞあれば、、、ディスク カヾ益れているかどうか " だけは石忍できるでしよう。 df コマンドの出力から上記の項目だけを抽出するには、 たとえは以下のように awk コマンドを使うのか簡単です。 % df ー awk '{print $ 5 , $ 6 } , Capacity Mounted 62 % / 78 % /home 83 % /usr 70 % /var 100 % /proc 先頭行にあるタイトルは不要なので削除したいですね。 そのためには awk コマンドに与えるスクリプトでク朝原行 をスキッフするようにします。 % df ー awk '{if (NR==I) next ; print $ 5 , $ 6 } , 62 % / 78 % /home 83 % /usr 70 % /var 100 % /proc awk スクリプト中で、 NR という変数には現在処理中の 行番号か、言聢されます。こオ功ゞ 1 であればう直行を処理中 写真 2 縮小モードでのメール新 言試プ矼ーイミ 9 言 目を e ミ弋 123458 マ 8 日 01 34 ぎ ら 7 8 3 0 2 3 4 5 618 9 0 は 2 345 7 8 3 0 1 345878301 第 345 日 7 3 0 1 2 45673 ヨ 01 , 2345 日 7 二と : 4 UNIX MAGAZINE 2002 ユ
otice 国際放送機器展ー lnter BEE 2001 ノ林ロ真 写真 1 会場内の 11 月 14 日 ~ 16 日の 3 日間、慕張メッセで国内最 大級の放 j 機器展 lnter BEE 2001 (lnternational Broadcast Equipment Exhibition 2001 ) か催さ れました。 展示会場には 6 つの展示ホール ( ホーノレ 3 ~ 8 ) が使 わオーディオ機器や央像・放送機器里の企業を中 心に 571 社カ咄展していました。昨年と上交して、イン ターネット・ストリーミングに関係する展示をおこなう プースがかなり目立ちました ( もちろん、展示の主力は 映像・放送機器ですか ) 。 というわけで、ストリーミングなどのネットワークに 関連した展示のなかから、目についたものをいくつカ齠 介しましよう。 ・ 1 / 2002 写真 2 GlobeCaster ワンソース・マノレチュース " を合い言葉に 1 つのシ ステムで作成したコンテンツを複数の用途に転用できる 装置カ磴場し始めています。そのなかから、会場内で見 かけた製品を 2 つ紹介します。 ングが可能になります。画像系のエンジンは旧 Play の Trinity を拡張したもののようで、本翻勺な使用にも耐 GlobeCaster える製品です。 GIobaIStreams[I] の「 GlobeCaster 」 ( 写真 2 ) 会場では、代理店であるメガフュージョン [ 2 ] のプー は、ライプ・プロードキャストとポスト・プロダクショ スに展示されていました。 ンで必要とされる機能を 1 つにまとめたバーチャル編集 CWS-IOO スタジオといった感じの製品です。 カノープス [ 3 ] は、新製品のコンテンツ制作システム デジタル・スイッチャーとしての機能はもとより、ノ 「 CWS -100 」 ( 写真 3 ) を展示していました。トランジ ンリニア編集、キャラクタ・ジェネレータ、 3D デジタ ション (A/B ロール ) 、タイトル表示、映像フィルタ、 ルエフェクト、アニメーション作成・合成など、映像編 クロマキー、ピクチャー・イン・ピクチャーなどの機能を 集に必要なひととおりの機能を備えています。さらに、 使ったリアルタイム編集が可能なノンリニア映像編集シ 制作した映像を Windows Media や Real でエンコー ステムです。ハードウェア・エンコーダによる MPEG ドしてストリーム出力してくれます。いったんアナログ 1 / 2 出力をはしめ、 Windows Media や QuickTime で出力した映像を、ビデオキャプチャ・カードをもつは 形式のファイル出力も可能です。このシステムだけで、 かの PC でエンコードする必要がなく、途中の AD 変 DVD オーサリン久ストリームビデオ、同社の ME- 換による画質の劣化も防げるため、高画質のストリー 28 ストリーム映像編集専用機 UNIX MAGAZINE 2002.1
写真 7 筺体には、 Vindows Powered のシールカヾ UNIX MAGAZINE 2002.1 グイーン手続きをおこなうと管理用の画面が表示されます は、パスワードは設疋されていません ( 図 4 ) 。最初にロ 初期状態で登録されている administrator アカウントに の画面にログインするためのプロンプトが表示されます。 クリックすると、 lnternet Explorer か起動して管理用 MaxNeighborhood て表示されたサーバー名をダブル MaxNeighborhood て変更することもできます ( 図 3 ) 。 ドレスなどのネットワーク情報を独自に設定したけれは、 DHCP で割り当てられたアドレスではなく、 IP ア hood をインストールします ( 図 1 ~ 2 ) 。 用するために、付属の lnstall CD から MaxNeighbor- NAS4100 を自重加勺に検出、表示してくれます。これを利 が用意されています。同一ネットワークートてオ力している 取得して起動したかを調べるツール MaxNeighborhood ドレスを取得しようとします。このとき、どのアドレスを NAS4100 を起動すると、匆設定時には DHCP でア べースのものは NAS4100 だけです。 いました。全 : 勺に導入したサーバーのうち、 Windows 変わり、 Windows て動く NAS を買うことになってしま べースの OS て新力いていたのですが、調 j も程でモデルが 調達前に評価した NAS4000 ( 筐体は青色 ) は UNIX W ⅲ d 。 ws の起動画面を見ることもできます。 VGA ポートにディスプレイを接続す川ま、おなしみの NAS を駆動するための OS の領域も含まれています。 正常に通用できません ) 。内蔵の 4 台のディスクのなかに のようです (Windows Update は、英言阪のパッチしか は日本言ヒされていますが、カーネルは英語阪 Windows 機能をもつ限定版です ( 写真 7 ) 。インターフェイスなど OS は、 Windows 2000 をベースとした NAS 専用の な使い方ではちょっともったいない ) 。 続する用途か想定されているようです ( 倉敷芸利・大のよう 使われていません。バックアッフ。用のテープ装置などを接 ドで載っていますが ( 写真 6 ー f) 、内蔵ディスクの馬町力には SCSI コントローラ Adaptec AIC ー 7899 Ⅵーがオンポー 図 1 lnstall CD の起動 醺信 ch フ大リーのインストル き対、・ヘようこそ . 、下のわラ物を労し ( くを、、 Max 地ト b 。汁記のインストル わライン登録 Network Attached Storage 粐・と物成管理を行ないます . お使 ( PC がらⅶれ h の ます。はたは登録カードを郵送してくたさい。 ) Maxtor のウ彎イトがらユーナ登録を行ない 表示する MaxAttach ドキュメントを選択してくださ、 7 ・一 WO ー k 引 0 ′ a00 ◆》 MaxNe を hbO 0 団 図 2 MaxNeighborhood の起動 有効な Max 鱸 ach サハ ヘルア MA217EAE わライン 2244.16422 。。一定気更 0 K)RKGR)UP 験索中をしはらくお待ら下さい。 3 分まど時胤がががる場合があります 図 3 ネットワーク情報の言聢を変更 両定 202 244.1 鬨 222 ハライ ネットマスグ ゲートウェイ MAC アドレス MaxAttach サー バー名 : ワークループ 244.164. 2 5 為 5. 5 ℃ 202244164.1 Adm セ研 MA217EAE DHOP クライアント . 新一一一 - ーーー - ーコ 通用 ) ー ステータス 99 この管理用画面のメニューを必要に応して尺し、ファ メニューのある画面が表示されます ( 図 6 ) 。 administrator アカウントでログインすると、本当の管理 クリックすると、再度ログイン画面カ咄てきます。ここで の Administer this server appliance のメニュ ここにはメニューが 1 行しかありません ( 図 5 ) 。
ー横 [ 着ープログラミング① 図 1 ChangeLog 形式のファイル」 2000 ー 12 ー 09 Satoru Takabayashi く satoru@namazu. org> * src/mksary. c (parse—options) : New option : 2000 ー 12 ー 08 Satoru Takabayashi く satoru@namazu. org> * src/Makefi1e. am (sary—SOURCES) : Simp1ified. —index , 氏は試行錯羅ヤ ) 末に、 ChangeLog 形式でメモをとるのが よろしい、という結論にたどりついた。私自身も、山下氏 から伝授された ChangeLog 形式でメモをとっている。私 の周囲にも、このガ去を実践している人か数名いるが、み んな気に入っているようである。 ChangeLog メモ 本来、 ChangeLog はソフトウェア開発の際にプログラ ムの変更履歴を当求するためのテキストファイルの形式で ある。変更履歴を言求に残しておけば、この変更を加えた のはいつかといったことを調べたり、開発の進捗状況を眺 めたりすることができる。典型的な ChangeLog 形式の ファイルは図 1 のようなものである。箇条書きの、、 * " の 左側には、 TAB 文字でインデントが入っている。この記 述を見れば、 2000 年 12 月 9 日に Satoru Takabayashi という人がファイノレ src/mksary. c の parse-options と いう関数に変更を加えて一一ⅲ dex と—i というオプション を追加したことが分かる。新しい変更履歴は ChangeLog の麪頁に追加されていくため、変更履歴の一覧は自然と新 しい順に並ぶ。 テキストエデイタ Emacs では、、、 C-x 4 a" というキー 操イ乍 2 で ChangeLog という名前のファイルに変更履歴を 簡単に」助日できる。この操作により、日付やメールアドレ ス、ファイル名、関数名の部分は自重加勺に入力される。 のとき、ユーサー名には Emacs の変数 user-full-name の値が、メールアドレスには user-mail-address の値が 用いられる。私は、 ~ / . emacs : こ (setq user—mail¯address " satoru@namazu. org" ) (setq user—full—name "Satoru Takabayashi " ) と設定している。また、、℃ー u C-x 4 a " という操作で、 ファイル名を指定して変更履歴を j 助日することもできる。 2 c-x は ControI キーを押しながら x を押づ髞作を表す。 118 ChangeLog 形式のファイルにメモをとることを、私 は、、 ChangeLog メモ " と呼んでいる。典型的な Change- L 。 g メモは、図 2 のような形式になっている。 メモしたいことを、単一のファイルに ChangeLog 形 式でする。要するに、こオ・けごけのことである。 ChangeLog メモの利点 ChangeLog メモには、次のような多くの利点がある。 特別なソフトウェアを膨要としない たんなるテキストファイルなので、テキストエデイタ さえあれは編集できる。特別なソフトウェアを使う方式で は、そもそも導入作業か面倒だし、そのソフトウェアの利 用をやめたときにデータを移行するのが大変である。その 点、ただのテキストファイルなら、いますぐ ChangeLog メモを始められるし、将来にわたってデータの移行を心哂己 する必喫もない。 検索や加工か柔軟におこなえる ChangeLog メモはテキストファイルなので、メモの検 索や加工にテキストエデイタや UNIX コマンドのもつ強 力なテキスト処理の機能を活用できる。 たとえは図 2 のように、 Rub ⅵ里のメモに、、 Ruby: という目印を付けておけは、 Emacs で、、 M-x occur" を 実行し 3 、、、 Ruby: " を検索することで、 RubY 関係のメ モをさっと一覧表示できる。 M-x occur の検索結果は、 次のように -- - 、覧表示される。 * Ruby: Enumerab1e#inject の使い方 122 : * Ruby: 配列をシャッフルする方法 126 : * Ruby: shift は O(n) 132 : 514 : * Ruby: mathn を require すると、数値演算の挙動 が変わる 3 M-x は、 AIt キーを押しながら x を押す、または ESC キーを押して から x を押す操作を表す。 UNIX MAGAZINE 2002.1
連載 /JavaServer pages ー - ⑩ 図 9 forward() メソッドで別のべージを呼び出す forward ・ jsp ファイル く %@ page contentType="text/htm1 ; charset=EUC—JP" % > く % page import="java. util . * " % > く ! DOCTYPE HTML PUBLIC "—//W3C//DTD HTML 4.0 Transitiona1//EN"> く html> く head> く meta http—equiv="Content—Type " content="text/html ; charset=EUC¯JP"> く title>forward 前のページく /title> く /head> く body> これは forward されるく b > 前く / b > のページです。く br> く % pageContext . forward ( "forwarded. j sp" ) ; く /body> く /html> 図 10 forward() メソッドで呼び出される forwarded. jsp ファイル く %@ page contentType="text/htmI ; charset=EUC—JP" % > く %@ page import="java. util. *" % > く ! DOCTYPE HTML PUBLIC "—//W3C//DTD HTML 4 . 0 Transitiona1//EN"> く html> く he ad> く meta http—equiv="Content—Type" content="text/html ; charset=EUC¯JP"> く title>forward 後のページく /title> く /head> く body> こちらは forward されたく b > 後く / b > のページです く /body> く /html > ・ forward() ・ include() UNIX MAGAZINE 2002.1 カまーー、一プラウサに表示されているのは forwarded. j sp の内 まの http://tomcat:8080/unimaga/forward.jsp です . jsp にアクセスしたときの表示です。 URL はもとのま warded. jsp ファイルです。図 11 はユーザーが forward ファイル、図 10 は forward. jsp から呼び出される for- 図 9 は forward() メソッドを呼び出す forward. jsp す。 JSP ファイルの例を紹介して詳しい説明の代わりにしま バーの振舞いを知っている方なら想像がつくと思うので、 を表示 ( リダイレクト ) するメソッドです。 WWW サー forward() はカレントのページの代わりに別のページ 図 11 forward. jsp の実行 . 方イルの編当 ) 表示常ジやンプゆフマーり但 ) タスりヘルフ & ! ァ′ぃ山 容であることを石忍してください。 9 ~ 第ュメ物ア朝 こちらは fors«ard された後のべーシてす . 同ロ この例を見るかぎりは通常の WWW サーバーのリダ イレクトの機能に似ていますが、 1 つ制限があります。 forward() メソッドで呼び出せるべージは、同し、、アプ リケーション " に属しているべージだけです。別のアプリ ケーションや別のサーバー上のページへリダイレクトする ことはできません。 93
図 8 ワークグループ内にリストされた SMB サーバー ニ Lab0 ファイル編集 0 表示 (Y) お気に入り” 戻る , ゆ山一 0 検索フォルダ ロ x 図 9 ユーサー名とパスワードの入力 アりセスすこはバスワードおよびューサ・一第必要です 望浦 v パスワード : 、” ネットワークパスワードの入力 図 10 SMB サーパーのサービス一覧 ロ smbsrv 」←戻る , , 山一 0 検索万ルダ朝履歴 1 ファイル 0 編集 ( 印表示お知こ入りーツ”ル” OK キャンセル ロ X 昌 個のオブジト 昌 W1npc を薯鋤 mksmbpasswd. sh を用いて smbpasswd ファイル # /usr/local/samba/bin/smbpasswd hayao Samba 用のパスワードを当求します。 め、 smbpasswd コマンドを使って、ユーザーごとに ーサーに対応するパスワードは空のままです。 にユーザーごとのエントリを作っただけでは、各ュ このた UNIX MAGAZINE 2002 ユ Windows 2000 の SMB クライアント (winpc) からア ワークグループ名を、、 LABO" とし、ユーサー hayao が こでは、 SMB サーバーの NetBIOS 名を、、 smbsrv' SMB サーバーと同しようにアクセスできるはすです。 クライアント側では特別な設定は不要で、 Windows の の SMB サーバーを利用できるようになります。 SMB と、当求されたユーサーは Windows マシンから Samba ューサーごとの Samba 用パスワードの登鉧訟完了する SMB クライアントからの利用 以外は指定できません ) 。 サーを追加します ()a オプションは、スーパーユーザー —a ユーサー名 " を実行して smbpasswd ファイルにユー ァイルにそのユーザーを追加し、その後に、、 smbpasswd ューザーを追加する場合は、ます UNIX のパスワード・フ UNIX のパスワード・ファイルに登録されていない新規 サー名を指定する必要はありません。 ドだけです ) 。この場合は、 smbpasswd の引数にユー す ( もちろん、変更できるのはユーサー自身のパスワー smbpasswd コマンドは、一殳ューサーでも実行できま Password changed for user hayao . Retype new SMB password: ←もう 1 回入力 New SMB password: ← Samba 用のノヾスワードを入力 0 傴のオブジェり 図 11 ホーム・ティレクトリにアクセス h の 0 - 引れ b Ⅳ 方イル 0 編集 0 表示 OØお知こ入りツールヘルプ 」朝戻る , 山一 0 検索万藤朝履歴一メめー アドレス 0 yao emacs m s. 0 し D 国・ em s. 0 し D ~ ・″旧 C き EW 研 ity 一丿オブジト -6317- sd ~ @xsession を n 止がを 0 い 0 ⅸを 49 K クセスした場合の例を紹介します。 /etc/printcap に登録されたプリンタ、、、 work" は smb. ム・ディレクトリ、 、 lp" と、、 rp" は SMB サーバーの 図 10 において、 hayao" はユーサー hayao のホー ます ( 図 10 ) 。 は smbsrv の提供するサービスがアイコンとして表示され smbsrv とのあいだで認証がおこなわオ、認証に成功すれ れます。ここで、ユーザー名とパスワードを入力すると は図 9 のようにユーザー名とパスワードの入力を求めら smbsrv をダブルクリックして開こうとすると、最初 表示されます ( 図 8 ) 。 (smbsrv) が ていれは、ウインドウ内に SMB サーバー ループ LABO を開くと、 SMB サーバーか正しく動作し Windows 2000 の、、マイネットワーク " からワークグ 51
ー横 } 着】ブログラミング① 図 6 ChangeLog メモの区切りは空行 2001 ー 09 ー 17 Satoru Takabayashi く satoru@nama•zu. org> * zsh: 履歴をすべての zsh プロセスて共通にしたい option share-history でできる が、 1 回 ls なり改行を打つなりしないと同期できない * CD : Utopic Sporadic Orchestra (Magma) De Futura はやばすぎる。 Jannick Top 選手にはまいった 写真 1 愛用している鉛筆付きメモ帳 プションを指定すれば、検索結果を旧いものから順に一一覧 できる。 リスト 2 に clgrep のソースコードを示す clgrep の夫彳列は次のとおりである。 % clgrep share—history -,/memo/diary. txt * zsh: 履歴をすべての zsh プロセスで option share—historyc できる が、 1 回 ls なり改行を打つなりしないと clgrep はオプジェクト指向スクリプト言語 Ruby11 で 実装した。このプログラムではオプジェクト指旬らしさは あまり活かされていないが、ちょっとしたツールを簡潔に 書けるという点は感しとってもらえると思う。しばらく前 まで、私はこの手のプログラムは Pe 卍 2 で書いていたが、 最丘はもつばら Ruby を使うようになった。 Ruby のほ うか書きやすいからである。私の周りでは、同様の理由で Perl から Ruby に移行している人が多い。 られたまとまりとして書かれている ( 図 6 ) 。そのため、単 TAB だけの行問題 純に M-x occur や grep を実行しただけでは、検索結果 テキストエデイタで ChangeLog メモを編集している カ哘単位で表示されて不便な場合がある。たとえば、図 6 と、知らす知らすのうちに TAB だけの行を作ってしま の例で share-history をキーワードとして grep でオす うことがある。 clgrep は各メモが空行によって区切られ ると、 ていることを前提しているため、 TAB だけの行がある option share—historyc できる と、前後のメモがつながってしまう。この問題を避ける としか表示されない。そこで、検索結果を、 には、 TAB だけの行を削除すればいい。 Emacs なら、 M-x query-replace-regexp ' で”十 $ ”を””に置 * zsh: 履歴をすべての zsh プロセスで共通にしたい option share—history でできる 換すれば、 TAB 文字だけの行を削除できる。 が、 1 回 ls なり改行を打つなりしないと同期できない おわりに と、メモのまとまりで表小する簡単 grep ツール clgrep を作成した。氏限の機能として、大文字・小文字を区別せ すに検索するための -i オプションと、本結果を遡頂に 今回は「 UNIX のメモ技術」などといういささか地味 表示するための -r オプションを用意した。 ChangeLog な話題を扱ったが、こういったノウハウはあまり紹介され メモでは先頭に次々と新しいメモが追加されていくため、 11 http://www.ruby-lang ・ org/ 通常、検索結果は新しいメモから順に表示される。 -r オ 12 http://www.perl.com/ 124 UNIX MAGAZINE 2002 ユ
特集ネットワークの基礎知識 0 図 12 smbstatus の実彳デ列 # /usr/local/samba/bin/smbstatus Samba version 2.0.10 ー ja ー 1 . 1 Service hayao uid hayao gid staff pid 12663 machine W1npc ( 192.168.1.1 ) Wed Nov 21 00 : 24 : 50 2001 No locked files Share mode memory usage (bytes) : 1048464 ( 99 % ) free + 56 ( 0 % ) used + 56 ( 0 % ) overhead 1048576 ( 100 % ) total conf の work セクションで疋したファイル共有サービ スです。プリンタや、、 w 。 rk " はどのユーザーからも同しよ うに見えますが、ユーサーのホーム・ディレクトリはアク セスするユーサーごとに異なります。 こで、、、 hayao " のアイコンをダブルクリックすると、 ホーム・ディレクトリ内のファイルやディレクトリが見え ます ( 図 11 ) 。また、プリンタのアイコンをダフルクリッ クすると、プリンタの登録作業が始まります ( すでに登録 されている場合は、そのプリンタに対するジョブの一覧が 表示されます ) 。 私はめったに使いませんが、日本語 ( 全角文字 ) を含む ファイル名も問題なく扱えます。ホーム・ディレクトリに ドライプ文字を割り当て、ローカルなディスクのように使 うことも可能です。何も知らなけれは、 SMB サーバーが UNIX マシンであるとは気つ、かないかもしれません。 Samba の SMB サーバーの利用状況は、 smbstatus コマンドで調べることができます。何も引数を付けすに実 行すると、 SMB クライアントの名前やユーサー、アク セスしているサーピスなどの↑帯長か表示されます。たとえ は、ユーサー hayao が自分のホーム・ディレクトリにア クセスしているときに smbstatus を実行すると、図 12 のようになります。 SMB サーバーをシャットダウンする ときには、アクセスしている SMB クライアントがないか どうか、このコマンドを使って確認するといいでしよう。 Windows の共有フォルダへのアクセス 今回の主旨からはすこし外れますが、せつかく Samba を紹介したので、 UNIX から Windows の共有フォルダ を利用する去に触れておきます。 52 smbclient Samba のノヾッケージには smbclient というコマンド が含まれています。これを使えは、文字どおり UNIX を SMB クライアントとして扱うことができます。このコマ ンドの基本的な使い方は以下のとおりです。 smbclient \\NetBIOS 名 \ 共有名オプション 共有名には、 Windows のフォルダを共有言きした際の 共有名を指定します。たとえは、さきほど SMB クライア ントとして利用した Windows 2000 (winpc) で、ある フォルダを pub " という名前で共有できるように設定し たとします。このフォルダに UNIX からアクセスするに は、 smbclient を図 13 のように実行します ( シェルのコ マンドラインでは、バックスラッシュ自身は、、 \ \ " と します ) 。 この例では、ユーザー hayao として winpc にアクセ スしていますが、はかのユーザーの権限でアクセスしたい 場合は、 smbclient コマンドの末尾に "—U ューサー名 " というオプションを付けます。アクセスに成功すると、 smb: \ > というプロンプトか表示さコマンド入力待ちになりま す。 smbclient て利用できるサプコマンドには、 cd ( サプ フォルダに移動 ) や ls ( フォルダ内のファイルの一覧表示 ) などがあります。ちょうど、 ftp コマンドと同じような感 覚で使えます。 smbclient を終了するには、 exit あるい は quit を入力します。 smbclient コマンドは、 Samba の SMB サーノヾー 対しても実行できます。したがって、 SMB サーバーが正 常に動いているかをチェックする目的にも使えます。オ UNIX MAGAZINE 2002.1
図 7 smb. confØf 列 Cg10ba1] client code page = 932 coding system = EUC workgroup = LABO server string = Samba %v security = user encrypt passwords = yes map tO guest = Never domalll master Ⅱ 0 10Ca1 master = yes preferred master os 1eve1 2 Wins support = Ⅱ 0 dns proxy = no hosts a110W = 192. 168 . 1 . 127. socket options = TCP—NODELAY SO—RCVBUF=> = 8192 SO_SNDBUF=8192 oplocks Ⅱ 0 表 2 smb. conf のおもな変数 [printers] comment = A11 Printers in /etc/printcap path = /var/spool/lpd/smb browseable writeable printable [home s ] no yes comment = Home Directories browseable writeable = yes [work] comment = Work Area for A11 Users path = /pub browseable = yes writeable = yes ( 誌面の都合上、で折り返しています。以下同様 ) security encrypt passwords map tO guest hosts allow COrnme nt path browseable writeable printable netbios workgroup client code page coding system server string 意味 全角文字を含むファイル名を SMB サーハーで扱う際の漢字コード SMB クライアントのコードベージ ( 言調 SMB サーバーか ) 听属するワークグループ名 SMB サーバーの NetBIOS 名 スプール・ディレクトリにユーサーがファイルを開いて書込み可能にする SMB サーバーカ甘是供するディレクトリ以下を書込み可能にする サーヒ、スをプラウズ可能にする ューサーがアクセスできるディレクトリ d SMB サーバーカ甘是供する各サーピスに対する説明 SMB サーバーにアクセスできるクライアントのリスト SMB サーバーに当求されたユーサーと一致しないアクセスの取扱い ワードを暗号化する 認証時に、 SMB サーバーと SMB クライアントのあいだで交換されるパス ューサーおよびパスワー日帯長を交換するガ去 ト " に相当 ) SMB サーバーに対する説明 ( 工クスプローラで言物Ⅱ表示にした場合の、コメン デフォルト値 (UNIX のホスト名 ) WORKGROUP 932a EUC Samba %v b user yes Never ( アクセスを拒否 ) なし なし なし yes れ : 932 は日本語を示すコードベージ番号 ( 日本語阪のテフォルト。オリジナル ( 語版 ) の場偬ま英語を示す 437 になる。 b : 、 %v" は、 Samba サーバーのバージョンを表す文字列に置き換えられる。 c : この変数を孑帛置しないと、すべてのホストかアクセス可能になる。 d : ファイル共有サーピスクメ昜合は共有するディレクトリ、プリンタ共有サーピスの場合はプリンタのスプール・ディレクトリ。 smb. conf を作成したら、いきなりデーモンを起動する のではなく、 testparm コマンドを実行してチェックしま す。このコマンドは smb. c 。 nf ファイルを読み込み、変 数名にスペルミスなどがあればその箇所を孑商します。さ らに、すべての変数と値の一覧も表示されるので、変数を 指定しなかった場合のデフォルト値を調べることもでき ます。 UNIX MAGAZINE 2002.1 デーモンの起動 Samba を運用するには、 smbd と nmbd の 2 つの デーモンを起動する必要があります ( いすれも /usr/local /samba/bin の下にインストールされます ) 。 srnbd は Samba の中核となるデーモンで、 SMB ク ライアントから SMB サーバーカ甘是供するサービスへのア クセスを処理します。 nmbd は、 SMB クライアントが 49