首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux centos 网卡聚合脚本-自动化运维

#!/bin/bash

#======用户填写信息网卡聚合后的IP信息

echo "注意网卡第一个IP 不能有角标数字,需要修改; 如: IPADDR    IPADDR1   IPADDR2  其中IP第一个没有数字1"

seelp 5

gatewayset=192.168.171.0# 请先修改子网何DNS

netmask=255.255.255.0# 子网掩码

a=(                                     # 请将IP地址放置括号内,分隔符是换行或者空格

111                                     # 占位,任意字符,数组角标默认从0开始,为统一执行下边从1开始的标准。

192.168.171.129

192.168.171.130

192.168.171.131

)

dnsset=8.8.8.8

dnsset1=114.114.114.114

# IP写入

sed -i 's/^SELINUX.*/SELINUX=Disabled/g' /etc/sysconfig/selinux

# 匹配  ^ 开头字符为SELINUX和该行后面的所有字符

# 更改为 SELINUX=Disabled,后面是文件路径

# 关闭 selinux

getenforce    # 查看状态:显示参数为disabled则为成功关闭

########################## 查找原始网卡路径 ##############################

eth=`ip a| grep "BROADCAST" | awk -F ":" 'NR==2' | sed "s/ //g"` ; echo "网卡名为:"$eth ;

                                                                               # 命令 ip a 查看网卡 过滤;broadcast  [ˈbrɔːdkɑːst] >广播;字段的行

                                                                               # awk -F ":" 以冒号为分隔符 ; 选择第一行,第二列,sed删除空格

# 符号  ; 分号表示第一条命令结束,第二条开始

ethCatalog=$(find / -name "*$eth" | grep "/etc/" | sed "s/ //g" ) ;  echo "网卡路径为: "  $ethCatalog

# catalog [ˈkætəlɔg] 目录

# find 查找网卡名称的路径,grep 过滤/etc 目录下网卡名称。sed删除空格

ip=$(cat $ethCatalog | grep IPADDR | awk -F "=" 'NR==1' | sed "s/ //g") ; echo "IP地址为: " $ip

                                                                              # 查看网卡文件,过滤IPADDR的行,awk -F"=" 分隔符是冒号,打印第一行第二列

echo "使用变量‘$ip’传来的网卡名,再使用find 查看命令,'*$ip'  星号是网卡名前面还有字符模糊匹配。网卡路径为:$ifcfg"

# 我要在/etc 目录里,查找网卡名开头字符为ifcfg的网卡名字和路径:

# find /etc  -name  ifcfg*    # -name指定名字,符号 * 后面所有内容

########################## 网卡恢复初始化  ##############################

sed -i  's/BOOTPROTO.*/BOOTPROTO=dhcp/g'  $ethCatalog

sed -i  's/^ONBOOT.*/ONBOOT=no/g' $ethCatalog

#  -e 修改多个  .* 后面的所有内容    \ 多行换行

# 设置为static静态

# 开启 onboot=yes

# 最后跟上文件路径

echo "==========没有需改的网卡信息为============"

cat $ethCatalog

sed -i "/IPADDR/d" $ethCatalog

sed -i "/NETMASK/d" $ethCatalog

sed -i "/GATEWAY/d" $ethCatalog

sed -i "/DNS/d" $ethCatalog

sed -i "/PREFIX/d" $ethCatalog

echo "网卡恢复初始化完成,查看网卡配置信息 "

cat $ethCatalog

#########################################################################

echo "网卡正在聚合,请稍等 "

sleep 3

nmcli connection add type bond ifname eth0 mode 1 ;

nmcli connection add type bond-slave ifname eno1 master eth0 ;

nmcli connection add type bond-slave ifname eno2 master eth0 ;

nmcli connection add type bond ifname eth1 mode 1

nmcli connection add type bond-slave ifname eno3 master eth1 ;

nmcli connection add type bond-slave ifname eno4 master eth1 ;

echo "网卡聚合完成正在,配置网卡信息 "

jhetc=`find /etc -name "*eth0"`

echo "聚合后的网卡路径为:$jhetc "

#########################################################################

sed -i  's/BOOTPROTO.*/BOOTPROTO=static/g'  $jhetc

sed -i  's/^ONBOOT.*/ONBOOT=yes/g' $jhetc

#  -e 修改多个  .* 后面的所有内容    \ 多行换行

# 设置为static静态

# 开启 onboot=yes

# 最后跟上文件路径

echo "==========没有需改的网卡信息为============"

cat $ethCatalog

sed -i "/IPADDR/d" $jhetc

sed -i "/NETMASK/d" $jhetc

sed -i "/GATEWAY/d" $jhetc

sed -i "/DNS/d" $jhetc

sed -i "/PREFIX/d" $jhetc

IPADDR=$(grep -r IPADDR1 $jhetc| awk -F = '');

ags=${#a[*]}

echo "数组有效元素为:$ags"

ipgs=$ags                               # 限制循环打印次数:数组个数为循环次数

for ((i=1;i

do

echo "IPADDR""$i"=$ >> $jhetc# $i 是换行自加加循环,也用来指定数组角标对应的值

done

echo "GATEWAY="$gatewayset >> $jhetc# 只有一个网关和DNS,不能为1,否则无法连接

echo "DNS="$dnsset >> $jhetc

echo "DNS1="$dnsset1 >> $jhetc

#=====netmask

qa=1                                    # 定义qa变量值为1

while(( $qa

do                                              # do 行动

      echo "NETMASK"$qa"=$netmask" >> $jhetc # 打印变量

      let "qa++"                      # 定义变量的规则

done

echo "会自动删除多余信息,请等待。。。"

sed -i '/^$/d' $jhetc

# '/^$/d' 删除 d ;   开头和后面所有为空 ^$

# 文件路径

sed -i "/"IPADDR$ags"/d" $jhetc

sed -i "/"NETMASK$ags"/d"  $jhetc# 删除多余信息

echo "==========修改后的网卡信息为============"

cat $jhetc

echo "网卡路径:" $jhetc

ip a

/etc/init.d/network restart ; ip a ; ping -c10 -w10  eisc.cn

# 重启 ,查看ip , ping -c 10 次数C  10次,-w 单次ping等待时间秒

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200826A0HY7Z00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券