linux下自动部署DNS脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下自动部署DNS脚本相关的知识,希望对你有一定的参考价值。
说明:
我用的是红帽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脚本的主要内容,如果未能解决你的问题,请参考以下文章