2013-05-14 8 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

+0

네, 그 페이지는 제가 발견 한 것과 같습니다. 불행히도 dns.zone을 사용할 때 그렇게하는 것에 대해 이야기합니다. 나는 동적 DNS 업데이트를 위해 dns.update를 사용해야한다고 생각했지만 아마도 dns.zone을 사용하고 일련 번호를 늘려야 할 것입니다. – Gman

답변

0

바인드는 단지 15 분마다 영역 파일을 뱉어냅니다. 필자는 저널 파일의 백업을 가져 와서 변경 사항이 반영되도록 (실패 후) 이름을 올리고 최신 레코드를 제자리에 둘 수 있기를 바랬습니다.

0

당신은 크론 탭을 사용하여, RNDC을 사용할 수 있습니다 -하지만 당신은 파이썬에 있기 때문에 ...이 나를 위해 그것을 수행합니다

#!/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)