如何在更新后触发dnspython中的区域文件保存

时间:2013-05-14 13:39:26

标签: python python-2.7 dnspython

我使用dnspython使用类似于

的语法执行动态DNS更新
import dns.update, dns.query
update = dns.update.Update('zone', keyring=keyring)
update.add('source', 60, 'CNAME', 'destination')
response = dns.query.tcp(update, 'localhost')

这很有效,除了我希望将区域文件的更改写入磁盘。有谁知道如何触发这样的更新?

提前致谢。

2 个答案:

答案 0 :(得分:0)

结果绑定只是每隔15分钟吐出一个区域文件。为了我的目的,我可以备份日志文件作为我希望所反映的更改能够启动命名(失败后)并具有最新记录的原因。

答案 1 :(得分: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 %s" % (dom, ret['err']))
else:  
  syslog.syslog(syslog.LOG_NOTICE, "Zone written to disk: %s" % dom)