linux克隆主機和非克隆主機網絡檢查修復腳本

本腳本實現功能:
1.解決克隆主機網絡錯誤問題
2.解決非克隆主機網絡問題

#!/bin/bash
#author:zyq
#date:20200401

. /etc/init.d/functions
export export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'

id=`id|awk -F " " '{print $1}'|cut -c 5`
if [ $id -eq "0" ];then
		echo -e "當前用戶爲root\n"
else
		echo -e "執行本腳本必須爲root用戶"
		exit 1
fi

sleep 1

ping -c2 -w2 114.114.114.1141 >/dev/null 2>&1
if [ $? -eq 0 ];then
	echo "網絡正常"
	exit 0
else
	echo -e "網絡異常\n"
fi

echo -e "開始檢查網絡...\n"

wait

#IP地址
IP=`hostname -I|cut -d " " -f 1`

#配置文件地址
ifcfg=/etc/sysconfig/network-scripts/ifcfg-eth0

eth0_MAC=`cat /etc/udev/rules.d/70-persistent-net.rules |egrep -v "^#|^$"|awk -F "," '{print $4}'|sed -nr 's/.*"(.*)".*/\1/p'|head -n 1`

MAC=`ifconfig |head -n 1|awk -F " " '{print $5}'`

#忽略大小寫
temp1=$(echo $eth0_MAC | tr [a-z] [A-Z])
temp2=$(echo $MAC | tr [a-z] [A-Z])

#更改MAC地址
function update_MAC(){
	#bakcup
	echo "正在備份網卡配置文件..."
	cp /etc/sysconfig/network-scripts/ifcfg-eth0{,.bak} && cp /etc/udev/rules.d/70-persistent-net.rules{,.bak}
if [ $? -eq 0 ];then
	echo "備份成功!"
	echo "`ll /etc/sysconfig/network-scripts/ifcfg-eth0.bak`"
	echo "`ll /etc/udev/rules.d/70-persistent-net.rules.bak`"
else
	echo "備份失敗,終止運行,請檢查錯誤"
	exit 1
fi
	#update mac
	echo "正在更新網卡文件的MAC地址,此操作需要重啓服務器"
	read -p "是否繼續執行(1繼續/2不了不了)" num
case $num in
	1)
#配置文件地址
	 ifcfg=/etc/sysconfig/network-scripts/ifcfg-eth0
#截取第二
	 eth1_MAC=`echo $Real_MAC|cut -d " " -f 2`
#註釋UUID
	 sed -i 's/UUID/#UUID/g' $ifcfg
#更換MAC地址
	 sed -i "s#HWADDR=.*#HWADDR=$MAC#g" $ifcfg
#更換IP
	 local lastnum=`grep IPADDR $ifcfg|cut -d "." -f 4`
	 local newnum=`expr $lastnum + 10`
	 sed -i "s#$lastnum#$newnum#g" $ifcfg
#刪除錯誤的配置文件
	 rm -f /etc/udev/rules.d/70-persistent-net.rules
#重啓服務器
	 wait
	 reboot
	;;
	2)
	 echo "終止運行"
	 exit 0
	;;
	*)
	 exit 1
esac
				
}
#不是克隆主機
function network_check(){
#檢查防火牆狀態並關閉
	service iptables status >/dev/null 2>&1
	[[ $? = 0 ]] && service iptables stop || echo -e "防火牆是關閉狀態\n"
#臨時關閉selinux
	setenforce 0
#檢查IP是否衝突
	arping -c 3 -f -D $IP
	[[ $? != 0 ]] && echo -e "IP地址衝突,請重新設置\n" || echo -e "IP地址無衝突\n"
#添加DNS
	echo "nameserver 114.114.114.114" >> /etc/resolv.conf
#獲取網關地址並檢查網關路由
	gatway=`sed -nr 's#GATEWAY=(.*)#\1#p' $ifcfg` 
	ping -c1 -w1 $gatway >/dev/null 2>&1
	[[ $? != 0 ]] && echo -e "網關錯誤,請重新設置\n" || echo -e "網關狀態正常\n"
#測試外網連接情況
	ping -c1 -w2 www.baidu.com >/dev/null 2>&1
	[[ $? = 0 ]] && echo -e "網絡狀態正常\n" || echo -e "網絡錯誤,請重新檢查網卡文件\n"
}


#菜單
read -p "本機是否爲克隆主機(1是/2不是):" num
case "$num" in
        1)
        echo "正在檢查MAC地址..."
         [ "$temp1" == "$temp2" ] && echo "MAC地址正確" || update_MAC
        ;;
        2)
        network_check
        ;;
        *)
        echo "請輸入正確的數字"
        exit 1
        ;;
esac


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