tablectl - マスターテーブルの操作
tablectlコマンドは、bounceHammerデータベースのマスターテーブルの閲覧、編集、更新などを行うコマンドです。マスターテーブルとは、バウンスの記録を保持するBounceLogsテーブルが参照するデータテーブルで、Addressers(発信者アドレス), SenderDomains(発信者ドメイン), Destinations(受信者ドメイン), HostGroups(宛先分類), Providers(宛先所属), Reasons(差戻理由)の6個があります。
このコマンドはインストールしたディレクトリ/bin/tablectlにあります。
使用例
tablectlは、bounceHammerのデータベース/マスターテーブルに対してSQL文を発行せずともある程度の操作が出来るようになっています。また、tablectlコマンドよりも捜査の範囲は限定されていますが、管理画面(WebUI)でも一部の操作が可能です。
実際のところ、tablectlコマンドが必要になる事はあまりありません。SenderDomainsテーブル以外の5つのマスターテーブルは、HostGroupsとReasonsはインストール直後のデータ登録で必要なデータを入れていますし、AddressersとDestinationsは必要に応じて自動的にデータが挿入されます。
# tablectl --list -tw ⏎
発信者ドメイン(SenderDomains)に"example.co.jp"を追加
# tablectl --table s --insert --name 'example.co.jp' --description 'Example K.K.' ⏎
発信者アドレス(Addresser)のID1の説明を更新
# tablectl --update -ta --id 1 --description 'this is my address' ⏎
受信者ドメイン(Destinations)のID4のデータを削除
# tablectl --remove -td --id 4 ⏎
ヘルプを表示
# tablectl --help ⏎
利用可能なオプション
テーブル制御用オプション
- -t, --table 文字
- tablectlがどのマスターテーブルに対して操作をするか指定します。このオプションの引数はそれぞれのマスターテーブルを表す一文字です。指定できる文字は、a: Addresser(発信者アドレス), s: SenderDomains(発信者ドメイン), d: Destinations(受信者ドメイン), h: HostGroups(宛先分類), p: Providers(宛先所属), w: Reasons(差戻理由[w]hy) です。
- --list
- -t オプションで指定したテーブルの全レコードを出力します。--id, --nameで出力するレコードを絞り込めます。SQLのSELECT * FROM (WHERE)に相当します。
- --update
- -t オプションで指定したテーブルの、--idオプションで指定したレコードの更新を行います。更新できるカラムは、--name, --decription, --disableのいずれかで指定します。SQLのUPDATEに相当します。
- --insert
- -t オプションで指定したテーブルに、--name, --description, --disableオプションで指定したレコードを作成します。SQLのINSERT INTOに相当します。
- --remove
- -t オプションで指定したテーブルの、--idオプションで指定したレコードの削除を行います。
カラム用オプション
- --id 数
- --updateで更新する、 --removeで削除する、--listで出力するデータのIDを指定します。SQLの WHERE id = に相当します。
- --name 名前
- --insertで登録する、 --updateで更新する、--listで出力するデータの名前を指定します。SQLの WHERE name = に相当します。 --insertで新たにデータを登録するときは必ずこのオプションで名前を指定しなければなりません。
- --description 説明
- --insertで登録する、 --updateで更新する、--listで出力するデータの説明部分を指定します。SQLの WHERE description = に相当します。
- --disabled 1 or 0
- --insertで登録する、 --updateで更新する、--listで出力するデータの無効フラグを指定します。SQLの WHERE disable = に相当します。 --disabledおよびdisabledカラムは実装はされていますがほとんど使用されていません。bounceHammerの将来のリリースで削除されたり名称が変わったりするかもしれません。
その他のオプション
- -C, --conf 設定ファイル
- 読み込む設定ファイルを指定します。このオプションを使用しない場合、インストール先/etc/bouncehammer.cfが使用されます。複数の設定ファイルを処理毎に使い分ける場合などでは有用でしょう。
- -T, --test
- テストモードで動作します。通常は動作に必要な設定値をインストール先/etc/bouncehammer.cfから読出しますが、このオプションを指定するとbouncehammer.cfが無くても動作します。-C test-run.cf と等価です。
- -F, --fotmat 文字
- --listオプションによるマスターテーブルの出力を指定したフォーマットで出力します。このオプションを指定しない場合は、YAML形式で出力されます。--insert, --update, --removeオプションを指定した場合、このオプションの指定は無視されます。 利用可能なフォーマットは次の通りです。yaml: YAML形式, asciitable: アスキーテーブル。 e.g.) アスキーテーブルで結果を得るtablectl -list -ts -Fa
- --silent (ver.2.1.0以降)
- このオプションを付けると、次の-v, --verboseオプションの有無にかかわらず冗長なメッセージおよびエラーの出力がなくなります。また、コマンドをsendmail等のデーモンが実行した場合、エラーが起きてもexit(0)=成功で終了します。--silentオプションを付けずにsendmail等MTAがコマンドを起動し、エラーが発生した場合はexit(75)=EX_TEMPFAILで終了します。
- -v, --verbose
- 処理過程が冗長に表示されます。
- --help
- コマンドのヘルプが表示されます。
- --version
- バージョン番号が表示されます。
SenderDomainsテーブル
マスターテーブルのうちSenderDomains(発信者ドメイン)は、必要なデータを手動で登録する必要があります。
bounceHammerの利用形態として、多くの場合は自社・自組織から送信したメールのエラーを記録するというものです。宛先となるメールアドレスは多種多様なので、その宛先ドメイン(Destinations)も全て把握する事はできませんが、発信者ドメインは自社・自組織が保有している=全部把握できる、ものです。
よって、自社・自組織で保有・管理しているドメインのうちメールアドレスとして使用されているもの、かつbounceHammerで管理したいものだけをSenderDomainsテーブルに登録しておく必要があります。
コマンド実行結果のスクリーンショットでの説明
No TrackBacks
TrackBack URL: http://bouncehammer.jp/cgi-bin/mt/mt-tb.cgi/38


Leave a comment