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" を読みに行ってしまいます) 以上。