我们在托管客户端程序的共置设施中拥有标准的高可用性设置。对于某些程序,我们托管 DNS,但我发现手动设置多个区域可能很繁琐且容易出错。有没有一种简单的方法来设置标准区域文件模板,以及如何运行 sed、awk 或其他程序来处理来自另一个文件的一组变量并将它们与模板合并以创建区域文件?
我考虑过使用 m4,但我不太熟悉,而且它似乎只适合一次合并一个模板。
理想情况下,我想采用标准区域文件模板并将其与如下列表合并:
域 1=ip1
域 2=ip2
域 3=ip1
域 4=ip1
等等...
有没有办法编写脚本?
答案1
我认为 m4 有点过头了。我的第一反应是 bash + sed,但如果你熟悉更高级的语言,那可能更容易。我脑海中浮现的可能是这样的:
数据文件:
例如.com:192.168.10.1 假冒.com:192.168.10.2 foo.com:192.168.10.3 网址:192.168.10.4
脚本:
/bin/bash #!/bin/bash DATAFILE=数据文件 TEMPLATE=模板.txt 对于 $(cat $DATAFILE) 中的数据 做 dom=${数据%:*} ip=${数据#*:} sed "{ s/DOMAIN/$dom/; s/IPADDR/$ip/; $TEMPLATE > $dom.zone 完毕
并且您的模板区域文件将在适当的位置包含“DOMAIN”或“IPADDR”。
这完全没有经过测试,使用前应进行完善。