戻る

3109:Class part 01

display class

watch class

まず なんにも 考えずに 以下の 様に してみよう、これは どうにかこうに か実際に 動作している sendmail.cf を 使用したものです

$ /usr/sbin/sendmail -C/etc/mail/sendmail.cf -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> $=w
nyanco.kingdom
nyanco
127.0.0.1
koro.catland.kingdom
kingdom.of.cat
localhost
[192.168.2.1]
[192.168.0.5]
[127.0.0.1]
192.168.0.6
192.168.0.7
192.168.0.8
nyanco.kingdom.of.cat
> /quit

もうひとつ これは 現在色々テストしているもので 見たものです

$ /usr/sbin/sendmail -Ctest17.cf -bt
Mhub: Warning: first argument in [IPC] mailer must be TCP or FILE
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> $=w
nyanco.kingdom
nyanco
localhost
[192.168.2.1]
[192.168.0.5]
[127.0.0.1]
nyanco.kingdom.of.cat
[localhost]
> /quit

表示がおかしいかも しれませんが これが にゃんたろうの 実力です 参考にしているもの ウクライナ

http://www.unix.org.ua/orelly/networking/sendmail/ch12_01.htm

と 異なる点は ”localhost”ちゅうもんが 既に 存在していると云うことで す 従って 何回も お断りを している事 (sendmail ちゅうもんは ヴァージョ ン とかデストリビューションにより 色々 異なる結果ちゅうか 条件、 環境ちゅ うか そういうもんが 異なる) これを 頭の何処かに置いといて 後の事 を 考えねば いけんと云うことです。

$w

class クラス て 何かと云う事です また 何をしようとしているのでせう? test17.cf にて こういう 所が 有りました

R$-@$w  $@ $1@${HUB}

これは 何を していたかと いうと

       Begin LHS
R$-@$w
R  : LHS を 始めます
$- : 1個の トークン の 代表 (ワイルドカード  1個の トークンを 表すもの)
@  : @ マーク そのもの
$w : (short domain name) 1例として ”nyanco”
       End LHS
     tab : (空白ではない タブ で 空ける)
       Begin RHS
$@ : RHS の プリフィックス マッチしたら この 
   ; ルールセットは この処理 RHS をして 終わりになる
   ; 現在の 処理は おえて このルールを return する
$1 : 作業領域”workspace”の 一番目の トークン
@  : @ マーク そのもの
${HUB} : D{HUB}nyanco.kingdom.of.cat で 定義された もの (1例として)
       ;   ”nyanco.kingdom.of.cat”(canonical domain name)
       End RHS

この場合 $w を 使用した 経緯は $+ (一つ以 上の 何らかの トークン マッチさせるもの)で 処理しようとすると 不都合 が 出てくる

 まず
user@nyanco このパターン を 望んでいる (user は色々変化するが)
$+ を 持ってくると 
user@nyanco は勿論 OK であるが user@nanndemo.kanndemo.OK 
等も 採用 してしまう つまり マッチする
それじゃ そのもの ずばり nyanco にすれば 良い これは これで 構わないが
nyanco から nyanzi に 変更した時に 対応忘れが ある (対応できれば 採用可能)
そこで 半自動 で それを 保持しているものを 使用する事に する
 半自動 というのは 何処かで 決めておかないと いけない 例えば
$ hostname
nyanco
で 得られるが これは /etc 内の hosts HOSTNAME 等で 決まっている
これは サーバーの (計算機)の 設定が 変わらない限 変更は 無い
いわば 大本であると考えられるので これを使うようにした

ここまでは 今までの ことである

class

計算機の 名前として

$ /usr/sbin/sendmail -Ctest16.cf -d0.1 -bt < /dev/null
/*                   抜粋                          */
      (short domain name) $w = nyanco
  (canonical domain name) $j = nyanco.kingdom.of.cat
         (subdomain name) $m = kingdom.of.cat
              (node name) $k = nyanco

この場合 user@nyanco user@nyanco.kingdom.of.cat の 場合も ユーザーの アドレスとしては ありうる もし IP アドレス で user@987.654.321.789 の 場合も 有るかもしれない これら すべて 真っ当な アドレス と考え られる へたら それに 対応させる $w 相当 のものを 使用する事ができれば 言いと云う事に なる。

class クラスを 宣言する

少し 観点を 変えてみよう 今までは ”$w”に 注目してきたが まとめて リ ストの 形にして その代表として 参照出来るように しても よいのでは 無いかいな これは 単独の 決め方に なるのであるが

CXlist
C{XXX}list 
実例 として
Cw server1 server2
あるいは
Cw server1
Cw server2
また
Cwserver1
Cwserver2

クラス設定コマンド の 形式は 上記のように 設定します 最初はC で始め 次に クラスの名前を 空白を入れづに続けま す この場合は X とか {XXX} 、w がこの場合 の クラスの名前です その後 リスト これは 同じ行に 空白で区切った 要素の 文字列を 続けて 入れていきます 今回は server1 server2 に相当します 決め方は 個々に つまり 1行に 2個のリストを 入れても 1個ずつ いれて 2行に しても クラスの名前が 同じであれば sendmail は 同じ クラスとして 取り扱って くれます。クラスの名前 と リス トの 間は 空白が 有っても 無くても 問題は 有りません

class クラスを 参照する

クラスは LHS の中で

$=X
$={XXX}

の形で プリフィックス ”$=”の形で参照されます、XXXX は クラス名 です。

戻る

にゃんたろう 拝!
2006年10月 6日 (金) 23:13:52 JST 作成

Copyright © 2004.-2007. nyantarou All Rights Reserved.