Вы могли бы хотеть продвинуть функцию маршрутизации на RT вместо того, чтобы пытаться реализовать его в procmail. Позвольте электронной почте быть отправленной в RT и затем используйте что-то как примеры документа на получение EmailRouting или SetOwnerAndQueueBySubject для закорачивания электронной почты в соответствующую очередь.
От Wiki RT (https://rt-wiki.bestpractical.com/wiki/Main_Page):
EmailRouting-> https://rt-wiki.bestpractical.com/wiki/EmailRouting
SetOwnerAndQueueBySubject-> https://rt-wiki.bestpractical.com/wiki/SetOwnerAndQueueBySubject
Поскольку вы говорите, что хотите использовать данные для запуска сканирования портов запущенных в данный момент узлов AWS, почему бы просто не собрать IP-информацию, перечислив текущие запущенные экземпляры AWS?
Вы могли бы есть записи в DNS, на которых не запущен текущий хост, и у вас могут быть запущенные хосты, которых на самом деле нет в DNS, поэтому я думаю, что список экземпляров будет лучшим «источником истины».
Вот пример скрипта бото для получения списка экземпляров. экземпляры списка ботинок Некоторые из параметров экземпляра - это текущий внешний и внутренний IP-адреса экземпляра.
Если вы действительно хотите придерживаться методов route53, вы можете использовать boto для просмотра всех записей в вашей зоне хостинга. boto docs для route53 api
$ cat list-r53.py
#!/usr/bin/python
"""
Simple script to lsit route 53 entries
WARNING: (boto requires credential to be stored in a dotfile for the user)
eg.
Contents of ~/.boto are below:
[Credentials]
aws_access_key_id = ABC123DEF456
aws_secret_access_key = NOC4KE4U
"""
from boto.route53.connection import Route53Connection
route53 = Route53Connection()
results = route53.get_all_hosted_zones()
for zone in results['ListHostedZonesResponse']['HostedZones']:
print "========================================"
print "Zone:",zone['Name']
zone_id = zone['Id'].replace('/hostedzone/', '')
for rset in route53.get_all_rrsets(zone_id):
print "\t%s: %s %s @ %s" % (rset.name, rset.type, rset.resource_records, rset.ttl)
$ ./list-r53.py
========================================
Zone: serverfault.com.
serverfault.com.: NS [u'ns-1638.awsdns-12.co.uk.', u'ns-699.awsdns-23.net.', u'ns-301.awsdns-37.com.', u'ns-1459.awsdns-54.org.'] @ 172800
serverfault.com.: SOA [u'ns-1638.awsdns-12.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400'] @ 900
192.168.1.1.serverfault.com.: PTR [u'sample.serverfault.com.'] @ 300
sample.serverfault.com.: A [u'192.168.1.1'] @ 300
Удачи.
Я решил, что вместо эквивалента мне действительно нужен dig -x
, работающий для всех моих amazon EIP. Вот как я это сделал.
Во-первых, я создал для этой цели новый экземпляр AWS под названием ns1. На ns1 я установил следующее:
После установки программного обеспечения Я написал несколько специальных сценариев оболочки, чтобы выполнить подъем.
Во-первых, cli53-to-hosts генерирует динамически сгенерированную версию файла / etc / hosts. Работа выполняется через cli53 export myzone.com с последующей некоторой сортировкой по организации.
Точно так же cli53-to-networks составляет списки сетей, для которых мне нужно сгенерировать зоны in-addr.arpa. Поскольку это не настоящие зоны в глобальном пространстве имен, я обманул и создал их на уровне сетевой маски / 16, например, 50.18, 107.23 и т. Д.
С помощью файла hosts и списка сетей для запустите DNS для, сценарий h2n (из книги O'Reilly DNS and BIND) завершит работу. Он записывает файл named.conf и серию файлов зон для обратного DNS.
Все это вызывается из cron каждую ночь с помощью финального скрипта configure-dns:
#!/bin/bash
. ~/.profile
cli53-to-hosts > /usr/local/etc/hosts
cli53-to-networks > /usr/local/etc/h2n/h2n.conf
cd /etc/bind
h2n -N 255.255.0.0 -f /usr/local/etc/h2n/h2n.conf -H /usr/local/etc/hosts -d mydomain.com -u demetri@mydomain.com -h ns1.mydomain.com -p mydomain.com
Окончательный результат:
mv-m-dmouratis:~ dmourati$ dig -x 50.18.205.42 @ns1.mydomain.com
; <<>> DiG 9.8.3-P1 <<>> -x 50.18.205.42 @ns1.mydomain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55551
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;42.205.18.50.in-addr.arpa. IN PTR
;; ANSWER SECTION:
42.205.18.50.in-addr.arpa. 86400 IN PTR bounce.mydomain.com.
;; AUTHORITY SECTION:
18.50.in-addr.arpa. 86400 IN NS ns1.mydomain.com.
;; Query time: 32 msec
;; SERVER: 54.218.3.75#53(54.218.3.75)
;; WHEN: Tue Jun 11 19:21:46 2013
;; MSG SIZE rcvd: 93
Это, безусловно, была большая работа, но она доставляла странное удовлетворение. Думаю, я помешан на работе с записями PTR и не могу отказаться от успешной репутации, когда они всегда работают.