1

我正在使用 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')

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

提前致谢。

4

2 回答 2

1

你可以使用 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)
于 2017-12-27T01:16:05.820 回答
0

结果是 bind 每 15 分钟吐出一次区域文件。出于我的目的,我可以备份日志文件,因为我希望反映更改的原因是能够启动命名(在失败后)并拥有最新的记录。

于 2013-05-15T05:10:06.103 回答