linux下自动部署DNS脚本

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介:

说明:

   我用的是红帽6.5系统,IP是172.24.10.107 能够ping通外网,虽然在实际中没什么用,但是对于学习shell编程和学校里的考试还是非常有用的,废话不多说,上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/bin/bash
#2017-11-11
#by-
#centos6.5
 
name= "duwentao.com"
rip=10.24.172
ip=172.24.10.107
ip_last=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.
$ip_last   IN    PTR     www.$name.
$ip_last   IN    PTR     mail.$name.
 
+END+
 
 
chgrp  named $named        
chgrp  named $zheng
chgrp  named $fan
 
echo  "nameserver $ip"  >>  /etc/resolv .conf
service named restart



执行过程:


本程序涉及的我认为重要的部分


1,if 语句  

1
2
3
4
5
if  [ ] ;  then
      语句1
  else
      语句2
fi


2,插入语句

1
2
3
4
5
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 变量。




欢迎关注我微信公众号,与我一起学习

56bfced931d3fd553ccff2c4cbc87d47.jpg-wh_



本文转自 天道酬勤VIP 51CTO博客,原文链接:http://blog.51cto.com/tdcqvip/1980923

相关文章
|
2月前
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
185 6
|
19天前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
53 4
|
20天前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
21天前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
25天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
1月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
40 1
|
1月前
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS
|
2月前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
529 2
|
1月前
|
存储 Shell Linux
【Linux】shell基础,shell脚本
Shell脚本是Linux系统管理和自动化任务的重要工具,掌握其基础及进阶用法能显著提升工作效率。从简单的命令序列到复杂的逻辑控制和功能封装,Shell脚本展现了强大的灵活性和实用性。不断实践和探索,将使您更加熟练地运用Shell脚本解决各种实际问题
28 0
|
2月前
|
Shell Linux 开发工具
linux shell 脚本调试技巧
【9月更文挑战第3天】在Linux中调试shell脚本可采用多种技巧:使用`-x`选项显示每行命令及变量扩展情况;通过`read`或`trap`设置断点;利用`echo`检查变量值,`set`显示所有变量;检查退出状态码 `$?` 进行错误处理;使用`bashdb`等调试工具实现更复杂调试功能。

相关产品

  • 云解析DNS
  • 下一篇
    无影云桌面