shell之分离解析脚本的实现方法

分离解析脚本

在运行脚本之前,需要VM虚拟机,Centos7,两台主机一台win10 -1 作为广域网的主机, 一台win10 -2作为区域网的主机。

之前我的博客有教程

#!/bin/bash
//修改添加网卡配置文件
//设置双网卡
sed -i '4s/dhcp/static/' /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i '15aIPADDR=192.168.17.1\nNETMASK=255.255.255.0' /etc/sysconfig/network-scripts/ifcfg-ens33
cp -p /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36
sed -i '13d' /etc/sysconfig/network-scripts/ifcfg-ens36
sed -i '12s/ens33/ens36/' /etc/sysconfig/network-scripts/ifcfg-ens36
sed -i '13s/ens33/ens36/' /etc/sysconfig/network-scripts/ifcfg-ens36
sed -i '15s/192.168.17.1/12.0.0.1/' /etc/sysconfig/network-scripts/ifcfg-ens36
systemctl restart network  //重启网路服务
//修改主配置文件
sed -i '13s/127.0.0.1/any/' /etc/named.conf
sed -i '21s/localhost/any/' /etc/named.conf
sed -i '54,57d' /etc/named.conf   //删除主配置文件的根域
//删除添加区域配置文件
sed -i '13,48d' /etc/named.rfc1912.zones  //删除13到48行区域配置文件
cat >> /etc/named.rfc1912.zones <<-EOF //给区域配置文件添加外部网卡和内部网卡
view "wan" {
    match-clients { 192.168.17.0/24; };  //内部网段

    zone "kgc.com" IN {
     type master;
     file "kgc.com.wan";
    };

    zone "." IN {
     type hint;
     file "named.ca";
    };
};

view "lan" {
    match-clients { 12.0.0.0/24; }; //外部网段

    zone "kgc.com" IN {
     type master;
     file "kgc.com.lan";
    };
};

EOF
cd /var/named
cp -p named.localhost kgc.com.wan  //复制模板到自己设置的区域数据配置文件
sed -i '2s/@/kgc.com./2' kgc.com.wan //把区域数据配置文件的第二行的@换成kgc.com
sed -i '2s/rname.invalid./admin.kgc.com./' kgc.com.wan
sed -i '8s/@/kgc.com./' kgc.com.wan
sed -i '9s/127.0.0.1/192.168.17.1/' kgc.com.wan
sed -i '10asmtp IN A 192.168.17.99\nwww IN A 192.168.17.88' kgc.com.wan
cp -p kgc.com.wan kgc.com.lan
sed -i '9s/192.168.17.1/12.0.0.1/' kgc.com.lan
sed -i '11s/192.168.17.99/12.0.0.1/' kgc.com.lan
sed -i '12s/192.168.17.88/12.0.0.1/' kgc.com.lan

systemctl stop firewalld.service  //关闭防火墙
setenforce 0  //关闭增强功能
systemctl start named //开启服务

最后我们用WINDOW去试一试解析域名

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • shell之分离解析脚本的实现方法

    分离解析脚本 在运行脚本之前,需要VM虚拟机,Centos7,两台主机一台win10 -1 作为广域网的主机, 一台win10 -2作为区域网的主机. 之前我的博客有教程 #!/bin/bash //修改添加网卡配置文件 //设置双网卡 sed -i '4s/dhcp/static/' /etc/sysconfig/network-scripts/ifcfg-ens33 sed -i '15aIPADDR=192.168.17.1\nNETMASK=255.255.255.0' /etc/sys

  • shell之正向解析脚本的实现方法

    正向解析脚本 #!/bin/bash yum install bind -y //安装解析工具包 //修改主配置文件 sed -i '13s/127.0.0.1/192.168.17.156/' /etc/named.conf //把解析主配置文件第13行的IP地址换成192.168.17.156 sed -i '21s/localhost/any/' /etc/named.conf //把主配置文件的21行localhost换成any //添加内容到区域配置文件 sed -i '24azone

  • linux下shell脚本备份文件的方法实现

    目录 1.shell自动备份 2.关于find命令: 1.shell自动备份 主要功能: 1)将pathSrc目录中的文件拷贝到pathDst目录中去. 具体步骤:先查询源目录和目标目录中的文件,分别存在fileSrc和fileDst中. -> 来两个循环,比较.不在fileDst的就拷贝过去.再判断一下是否拷贝成功. 2)将pathSrc中的文件保留180天. 具体步骤:先查出源目录中大于180天的文件(就是那句find),然后删除. #!/bin/bash v_time=`date "

  • Shell逐行读取文件的4种方法

    在Linux中有很多方法逐行读取一个文件的方法,其中最常用的就是下面的脚本里的方法,而且是效率最高,使用最多的方法.为了给大家一个直观的感受,我们将通过生成一个大的文件的方式来检验各种方法的执行效率. 方法1:while循环中执行效率最高,最常用的方法. 复制代码 代码如下: function while_read_LINE_bottm(){ While read LINE do echo $LINE done  < $FILENAME } 注释:我习惯把这种方式叫做read釜底抽薪,因为这种方

  • python执行shell获取硬件参数写入mysql的方法

    本文实例讲述了python执行shell获取硬件参数写入mysql的方法.分享给大家供大家参考.具体分析如下: 最近要获取服务器各种参数,包括cpu.内存.磁盘.型号等信息.试用了Hyperic HQ.Nagios和Snmp,它们功能都挺强大的,但是于需求不是太符,亦或者太heavy. 于是乎想到用python执行shell获取这些信息,python执行shell脚本有以下三种方法: 1. os.system() 复制代码 代码如下: os.system('ls') #返回结果0或者1,不能得到

  • Linux CentOS 定时运行脚本配置的方法

    很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如使用七牛的工具上传,如果同步文件里面有新增加一个文件,这个时候我们可以提供定时脚本去完成我们需要的同步命令(七牛的qrsbox工具是自动会同步的,只需要在同步文件夹里面增加一个文件就会自动监听上传). 1.安装crontab [root@CentOS ~]# yum install vixie-cron [root@CentOS ~]# yum install crontabs vixie-cron软件包是cron的主程序: cron

  • python SSH模块登录,远程机执行shell命令实例解析

    用python SSH模块登录,并在远程机执行shell命令 (在CentOS 7 环境试验成功, Redhat 系列应该是兼容的.) 先安装必须的模块 # yum install python-dev # yum install python-devel # pip install pycrypto # pip install paramiko # pip install ssh 这些都成功后, 编写一个Python脚本 # vim remote_run.py import ssh # 新建一

  • shell简单处理mysql查询结果的方法

    首先理清要了解shell脚本的数组与字符串的一些特性: str=("hello" "world" "!") #结果: str: 3 #普通的字符串数组 echo "str: " ${#str[@]} str1=("hello world !") #结果: str1: 1 #普通的字符串数组 echo "str1: "${#str1[@]} str2=(`echo "Hello

  • Linux Shell获取文件夹下的文件名方法

    有时候需要获取某个文件夹下的所有文件名,可以用程序实现,但是打开IDE,编译运行太麻烦,在Linux服务器中通常不能打开IDE,此时可以用几行简单的shell命令来实现,结果保存到某个文件中即可. Shell脚本如下: #!/bin/bash # get all filename in specified path path=$1 files=$(ls $path) for filename in $files do echo $filename >> filename.txt done 以上

  • shell递归输出文件名和目录名的方法

    最近遇到一个问题,输出指定目录下的所有子目录以及所有文件名 简单写了个shell脚本实现 function echo_name(){ for file in `ls $1` do echo $1"/"$file if [ -d $1"/"$file ] then echo_name $1"/"$file fi done } echo_name $1 运行 sh test.sh script 运行结果 以上这篇shell递归输出文件名和目录名的方法

随机推荐