home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

日記/2004/11/05/sendmailの"makemap hash"メモ

作成日: 2004-11-05 16:34:22   /   last updated at: 2009-04-12 16:40:49
カテゴリ: sendmail 

sendmailで良く使う"makemap"コマンドについてメモ。aliasとかvirtusertableとかで良く使います。

もともと、makemap は sendmail に含まれるプログラムみたいです。ヘルプを読むとこんな風に使うようです。

$ makemap type mapname

"type" には hash や b-tree という内部データ構造の名前を指定します。大抵は"hash"を指定します。
"mapname" ですが、これはファイル名ではない点に注意です。

# makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable

virtusertableの操作では上記のようなコマンドを実行しますが、ぱっと見、「virtusertableに上書きしてるのかな?」と思ってしまいます。
実際は "mapname" が "/etc/mail/virtusertable" で、makemapの方でお尻に".db"を付けて実際のファイル名にしています。つまり"/etc/mail/virtusertable.db" が実際に書き込まれるファイルになります。

makemapは標準入力からキー値(スペース)対応値を一行ずつ読み込んでって、「(mapname).db」というファイルにtypeで指定された形式で出力するプログラムです。
試しにファイル入力無しで動かしてみると、「入力してね」という内容のプロンプトが表示されます。

ダンプも用意されてます。

$ makemap type -u mapname

これで、undump できます。

# makemap hash -u /etc/mail/virtusertable

"mapname"ですので、間違っても "-u /etc/mail/virtusertable.db" とはなりません。(".../virtusertable.db.db" を読みに行ってしまいます)

以上。

original url: https://www.glamenv-septzen.net/view/334