千家信息网

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

发表于:2024-10-25 作者:千家信息网编辑
千家信息网最后更新 2024年10月25日,Shell脚本编程之案例使用正则表达式1)VMware 软件,虚拟机为Centos7系统,使用shell脚本配置静态网卡#!/bin/bash#该shell脚本适用于VMware Centos7双网卡
千家信息网最后更新 2024年10月25日Shell脚本编程之案例使用正则表达式(网络配置与dhcp配置脚本)

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

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

#!/bin/bash#该shell脚本适用于VMware Centos7双网卡的配置#author:lokott#version:2.0#下面是关闭防火墙和SELinux,这里可以不写,本人习惯在启动服务之前先将之关闭systemctl stop firewalled.service &> /dev/nullsetenforce 0 &> /dev/nullcp -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-ens36sed -i 's/ens33/ens36/g' $var/ifcfg-ens36sed -i '/^UUID/d' $var/ifcfg-ens36sed -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 1fi

2)DHCP脚本编写

#!/bin/bash#该脚本用于配置dhcp服务的shell脚本#author:lokott#version:2.0#执行脚本的时候可以使用./dhcp.sh 2>&1 > /dev/nullyum install dhcp -y &> /dev/nullyum install expect -y &> /dev/nullvar1=/usr/share/doc/dhcp-4.2.5/dhcpd.conf.examplevar2=/etc/dhcp/dhcpd.conf#下面是关闭防火墙和SELinux,这里可以不写,本人习惯在启动服务之前先将之关闭systemctl stop firewalled.service &> /dev/nullsetenforce 0 &> /dev/null#expect免交互部分/usr/bin/expect<<-EOFspawn cp  $var1 $var2 expect {    "*?"    {send "yes\r";}}EOF#将需要配置的内容添加到指定路径下cat <> $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
0