Shell腳本編程之案例使用正則表達式(網絡配置與dhcp配置腳本)

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章