温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Shell脚本编程之案例使用正则表达式(网络配置与dhcp配置脚本)

发布时间:2020-07-07 18:24:51 来源:网络 阅读:236 作者:wx5d8a17c45cb5b 栏目:系统运维

Shell脚本编程之案例使用正则表达式

1)VMware 软件,虚拟机为Centos7系统,使用shell脚本配置静态网卡

#!/bin/bash
#该shell脚本适用于VMware Centos7双网卡的配置
#author:lokott
#version:2.0
#下面是关闭防火墙和SELinux,这里可以不写,本人习惯在启动服务之前先将之关闭
systemctl stop firewalled.service &> /dev/null

setenforce 0 &> /dev/null
cp -p /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36
#定义普通变量
var=/etc/sysconfig/network-scripts
#sed命令将dhcp换为static,将所有的ens33换为ens36,删除UUID所在的行,最后添加ip地址子网掩码以及默认网关
sed -i 's/dhcp/static/' $var/ifcfg-ens36
sed -i 's/ens33/ens36/g' $var/ifcfg-ens36
sed -i '/^UUID/d' $var/ifcfg-ens36
sed -i -e '$aIPADDR=192.168.100.100' -e '$aNETMASK=255.255.255.0' -e '$aGATEWAY=192.168.100.1' $var/ifcfg-ens36

#重启网络服务
systemctl restart network
#检查是否是自己设置的ip地址,不是则直接退出
ipadd=`ifconfig ens36 |sed -n '2p' |awk '{print $2}'`
if [ $ipadd != "192.168.100.100" ]
then
    exit 1
fi

2)DHCP脚本编写

#!/bin/bash
#该脚本用于配置dhcp服务的shell脚本
#author:lokott
#version:2.0
#执行脚本的时候可以使用./dhcp.sh 2>&1 > /dev/null
yum install dhcp -y &> /dev/null
yum install expect -y &> /dev/null
var1=/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
var2=/etc/dhcp/dhcpd.conf
#下面是关闭防火墙和SELinux,这里可以不写,本人习惯在启动服务之前先将之关闭
systemctl stop firewalled.service &> /dev/null

setenforce 0 &> /dev/null
#expect免交互部分
/usr/bin/expect<<-EOF
spawn cp  $var1 $var2 
expect {
    "*?"
    {send "yes\r";}
}
EOF
#将需要配置的内容添加到指定路径下
cat <<EOF >> $var2 
subnet 192.168.100.0 netmask 255.255.255.0 {
    range 192.168.100.10 192.168.100.20;
    option routers 192.168.100.100;
    #以下是在做pxe部署时的配置
    #option domain-name-servers 114.114.114.144;
    #next-server 192.168.100.100;
    #filename "pxelinux.0";
}
EOF
#启动dhcp服务
systemctl restart dhcpd
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI