2013-05-14 82 views
0

我使用dnspython使用類似的語法進行動態DNS更新:更新後如何觸發區域文件保存從dnspython

import dns.update, dns.query 
update = dns.update.Update('zone', keyring=keyring) 
update.add('source', 60, 'CNAME', 'destination') 
response = dns.query.tcp(update, 'localhost') 

這工作很好,但我想更改到區文件寫入磁盤。有誰知道如何觸發這樣的更新?

在此先感謝。

+0

有一個關於爲例[此頁(HTTP://agiletesting.blogspot .co.uk/2005/08/managing-dns-zone-files-with-dnspython.html)標題下的「修改DNS區域文件」。 – Aya 2013-05-14 13:48:47

+0

是的,這是我找到的相同頁面。不幸的是,它使用dns.zone時談到了這一點。我認爲動態DNS更新,你應該使用dns.update,但也許我必須解決使用dns.zone和增加序列我自己。 – Gman 2013-05-15 02:29:41

回答

0

結果只是每隔15分鐘吐出一次區域文件。出於我的目的,我可以對日誌文件進行備份,因爲我希望反映的變化是能夠啓動命名(發生故障後),並具有最新的記錄。

0

你可以使用RNDC,使用crontab的 - 但因爲你是在Python ......這樣做對我來說:

#!/usr/local/bin/python2.7 

import syslog, isc 

dom = 'domain.example' 

r = isc.rndc(('127.0.0.1', 953), 'hmac-sha256', 'MjB5u4QLSlL5EGFtD/etc=') 
ret = r.call('sync %s' % dom) 
if ret['result'] != '0': 
    syslog.syslog(syslog.LOG_ERR, "Error writing zone: %s " % (dom, ret['err'])) 
else: 
    syslog.syslog(syslog.LOG_NOTICE, "Zone written to disk: %s" % dom)