常用的shell脚本之一键部署DNS服务正向解析(我淋过的最大的雨,是那一天你在烈日下的不回头。)
1. 编写脚本情况分析
首先判断bind程序是否安装,已安装的话直接进行修改配置文件,未安装则进行yum 安装;
yum安装的时候进行判断是否安装成功,安装成功则继续,否则退出脚本;
使用read命令获取我们想要解析的域名及映射的IP地址;
修改主配置文件,区域配置文件和区域数据文件;
最后启动named服务的时候再次进行判断,成功则继续,失败则退出!
2. 脚本代码部分
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 | #!/bin/bash #一键部署DNS正向解析 # 判断bind程序是否安装 if rpm -q bind &> /dev/ null then continue else if yum install -y bind &> /dev/ null then continue else echo "BIND installation failed....." exit fi fi read -p "输入域名(格式:baidu.com): " ym read -p "输入要解析的IP: " ip # 修改主配置文件 sed -i 's/127.0.0.1/any/' /etc/named.conf sed -i 's/localhost;/any;/' /etc/named.conf # 修改区域配置文件 echo 'zone "' $ym'" IN { type master; file "'$ym'.zone" ; allow-update { none; }; };' >> /etc/named.rfc1912.zones # 复制区域数据文件模板并修改 cp -p / var /named/named.localhost / var /named/$ym.zone sed -i 's/@ rname.invalid/' $ym '. admin.' $ym '/' / var /named/$ym.zone sed -i 's/127.0.0.1/' $ip '/' / var /named/$ym.zone sed -i '8 s/@/' $ym './' / var /named/$ym.zone echo 'www IN A ' $ip '' >> / var /named/$ym.zone # 判断named服务是否开启 if systemctl restart named &> /dev/ null then echo "name启动完成...." else echo "name启动失败,已退出!" exit fi # 修改临时DNS和IP的映射 echo 'nameserver ' $ip '' > /etc/resolv.conf echo "DNS正向解析已配置完成!" |
希望和悲伤,都是一缕光。总有一天,我们会再相遇。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)