Bash:将1添加到named.conf文件中的串行计数器,这是如何完成的?
我有一个更新DNS服务器上DNS记录的脚本。每次使用新站点更新Bash:将1添加到named.conf文件中的串行计数器,这是如何完成的?,bash,dns,escaping,Bash,Dns,Escaping,我有一个更新DNS服务器上DNS记录的脚本。每次使用新站点更新named.conf文件时,我必须将串行计数器至少提高1。 因此,我的脚本在远程计算机上运行,我将添加下一行: serial=`ssh root@172.19.214.X 'cat /var/named/named.booking.zone |grep serial |awk -F\" \" '{print $1}''` 它工作不好,我想我没有正确地避开“”。。。 然后我想到了这样的事情: ssh root@172.19.214.X
named.conf
文件时,我必须将串行计数器至少提高1。
因此,我的脚本在远程计算机上运行,我将添加下一行:
serial=`ssh root@172.19.214.X 'cat /var/named/named.booking.zone |grep serial |awk -F\" \" '{print $1}''`
它工作不好,我想我没有正确地避开“
”。。。
然后我想到了这样的事情:
ssh root@172.19.214.X "sed -e 'g/"$serial"/"$serial"+1/s' /var/named/named.booking.zone"
我的源文件:
$TTL 600
@ IN SOA root. booking.local. (
2013030311 ; serial (d. adams)
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Minimum
;
IN MX 10 mail
IN NS dns
IN A 172.19.214.X
www IN A 172.19.214.X
你能告诉我如何正确地越狱吗?
谢谢 将此内容用于/var/named/named.booking.zone:
serial "1"
您可以使用以下内容:
#!/usr/bin/bash
serial=$(ssh root@172.19.214.X 'grep serial /var/named/named.booking.zone' 2>/dev/null |awk '{print $1}' )
(( next_serial = serial + 1 ))
ssh root@172.19.214.X 'sed -i.bak -e 's_${serial}_${next_serial}_g' /var/named/named.booking.zone' 2>/dev/null
不幸的是,它返回的是空行,而不是序列号。我还试图删除
2>/dev/null
,以查看失败的地方,但我得到了相同的空行…很抱歉响应太晚,它给了我以下错误:-bash:意外标记附近的语法错误('`