2013-05-14 84 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)