linux下自動部署DNS腳本
阿新 • • 發佈:2017-11-12
shell dns linux
說明:
我用的是紅帽6.5系統,IP是172.24.10.107 能夠ping通外網,雖然在實際中沒什麽用,但是對於學習shell編程和學校裏的考試還是非常有用的,廢話不多說,上代碼:
#!/bin/bash #2017-11-11 #by- #centos6.5 name="duwentao.com" rip=10.24.172 ip=172.24.10.107 named="/etc/named.conf" zheng="/var/named/$name.zone" fan="/var/named/$rip.in-addr.arpa.zone" #判斷DNS軟件是否安裝,如果安裝了,就卸載再安裝,如果沒安裝就安裝 if [ ! -f $named ];then yum install bind* -y else yum remove bind* -y yum install bind* -y fi #配置主配文件 rm -rf $named touch $named cat >> $named << +END+ options { listen-on port 53 { any; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion yes; dnssec-enable no; dnssec-validation no; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; zone "$name" IN{ type master; file "$zheng"; }; zone "$rip.in-addr.arpa" IN{ type master; file "$fan"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; +END+ #配置正向解析文件 if [ ! -f $zheng ];then touch $zheng else rm -rf $zheng touch $zheng fi cat >> $zheng << +END+ \$TTL 1D @ IN SOA $name. root.$name. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns.smile.com. dns IN A $ip mail IN A $ip www IN A $ip +END+ #配置反向解析文件 if [ ! -f $fan ];then touch $fan else rm -rf $fan touch $fan fi cat >> $fan << +END+ \$TTL 86400 @ IN SOA $rip.in-addr.arpa. root.$name. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns.$name. 107 IN PTR www.$name. 107 IN PTR mail.$name. +END+ chgrp named $named chgrp named $zheng chgrp named $fan echo "nameserver 172.24.10.107" >> /etc/resolv.conf service named restart
執行過程:
本程序涉及的我認為重要的部分
1,if 語句
if [ ] ; then 語句1 else 語句2 fi
2,插入語句
cat >> 文件 << +END+ 要插入的語句 註意cat >> 是追加 cat > 是把源文件裏的內容清空再加 +END
3,邏輯運算符
-f | 判斷文件是否存在 | eg: if [ -f filename ] |
-d | 判斷目錄是否存在 | eg: if [ -d dir ] |
4,變量
shell 編程語言是非類型的解釋語言,shell給一個變量賦值,實際上 就是定義了變量,在linux支持的所有shell中,都可以用(=)為變量賦值。
SHELL 變量可分為兩類:局部變量和環境變量。局部變量只在創建它們的 shell 腳本中使用。而環境變量則可以在創建它們的 shell及其派生出來的任意子進程中使用。有些變量是用戶創建的,其他的則是專用 shell 變量。
歡迎關註我微信公眾號,與我一起學習
本文出自 “天道酬勤” 博客,請務必保留此出處http://tdcqvip.blog.51cto.com/12995943/1980923
linux下自動部署DNS腳本