首页 > 系统相关 >ubuntu20.04 链路聚合的shell脚本

ubuntu20.04 链路聚合的shell脚本

时间:2023-09-08 14:32:01浏览次数:44  
标签:ubuntu20.04 shell grep name sudo echo sed location 链路

链路聚合,就是将两个网口的功能合并,比如eth0和eth1两个网口,合并之后,本来只有使用eth0才能实现的功能,使用eth1后也可以,他们的网速也会变成eth0的网速+eth1的网速;

#!/bin/bash
name=/etc/netplan/01-network-manager-all.yaml
#ip_netmask=$(grep addresses $name | grep /)
#gateway4=$(grep gateway4:$name)
bond=$(cat $name | grep "bonds")
bond_status=$?
#echo $bond_status
dhcp4=$(cat $name | grep "ethernets" -A 2 | grep "dhcp")
ip_netmask=$(cat $name | grepaddress | grep /)
gateway4=$(cat $name | grep gateway4)
gat_addresses=$(cat $name | grep "nameservers" -A 1 | grep "addresses")
 
name_1=$(cat $name | grep "interfaces" -A 1 | grep "-" | cut -d "-" -f  2 | cut -d " " -f 2)
name_2=$(cat $name | grep "parameters" -B 1 | grep "-" | cut -d "-" -f  2 | cut -d " " -f 2)
echo $name_1
echo $name_2
 
if [[ $name_1 = eno1 ]] && [[ $name_2 = eno2 ]];then
	standards="true"
else
	standards="fail"
fi
 
echo $standards
if [[ "$bond_status" = "0" ]] && [[ "$#" != "0" ]];then
	echo "传入参数,使用参数的两个网卡连接"
	ethernets_location=$(cat $name | grep -n "ether" | cut -d : -f -1)
	interfaces_location=$(cat $name | grep -n "interfaces" | cut -d : -f -1)
	
	revision1=`expr $ethernets_location + 1`
	revision2=`expr $ethernets_location + 3`
	sudo sed -i ''$revision1'c    '$1':' $name
	sudo sed -i ''$revision1's/^/    /' $name
	sudo sed -i ''$revision2'c    '$2':' $name
	sudo sed -i ''$revision2's/^/    /' $name
	revision3=`expr $interfaces_location + 1`
	revision4=`expr $interfaces_location + 3`
	sudo sed -i ''$revision3'c    - '$1'' $name
	sudo sed -i ''$revision3's/^/        /' $name
	sudo sed -i ''$revision4'c    - '$2'' $name
	sudo sed -i ''$revision4's/^/        /' $name
	#sudo netplan apply
elif [[ "$bond_status" = "0" ]] && [[ "$standards" = "true" ]];then
	echo "已bond,参数是eno1/eno2,直接执行"
	#sudo netplan apply
elif [[ "$bond_status" = "0" ]] && [[ "$standards" = "true" ]];then
	echo "已bond,参数不是eno1/eno2,重新替换为eno1/eno2"
	revision1=`expr $ethernets_location + 1`
	revision2=`expr $ethernets_location + 3`
	sudo sed -i ''$revision1'c    eno1:' $name
	sudo sed -i ''$revision1's/^/    /' $name
	sudo sed -i ''$revision2'c    eno2:' $name
	sudo sed -i ''$revision2's/^/    /' $name
	revision3=`expr $interfaces_location + 1`
	revision4=`expr $interfaces_location + 2`
	sudo sed -i ''$revision3'c    - eno1' $name
	sudo sed -i ''$revision3's/^/        /' $name
	sudo sed -i ''$revision4'c    - eno2' $name
	sudo sed -i ''$revision4's/^/        /' $name
	#sudo netplan apply
else
	echo "未bond"
	sudo chmod 777 $name
	sudo sed -i '1,$d' $name
	sudo echo "# Let NetworkManager manage all $name devices on this system:">$name
	sudo sed -i '$a network:' $name
	sudo sed -i '$a version: 2' $name
	sudo sed -i '$a renderer: NetworkManager' $name
	sudo sed -i '$a ethernets:' $name
	sudo sed -i '3,$s/^/  /g' $name
	if [ $# -ne 0 ];then
		sudo sed -i '$a     '$1:'' $name
	else
		sudo sed -i '$a     eno1:' $name
	fi
	sudo sed -i '6,$s/^/    /g' $name
	sudo echo "$dhcp4">>$name
	if [ $# -ne 0 ];then
		sudo sed -i '$a     '$2:'' $name
	else
		sudo sed -i '$a     eno2:' $name
	fi
	sudo sed -i '8,$s/^/    /g' $name
	sudo echo "$dhcp4">>$name
	sudo sed -i '$a        bonds:' $name
	sudo sed -i '10,$s/^/  /g' $name
	sudo sed -i '$a        bond0:' $name
	sudo sed -i '11,$s/^/    /g' $name
	if [ $# -ne 0 ];then
		sudo echo "$ip_netmask">>$name
	else
		sudo sed -i '$a     addresses: [10.166.10.31/16]' $name
		sudo sed -i '12,$s/^/      /g' $name
	fi
	if [ $# -ne 0 ];then
		sudo echo "$gateway4">>$name
	else
		sudo sed -i '$a     gateway4: 10.166.0.1' $name
		sudo sed -i '13,$s/^/      /g' $name
	fi
	sudo sed -i '$a        nameservers:' $name
	sudo sed -i '14,$s/^/    /g' $name
	if [ $# -ne 0 ];then
		sudo echo "$gat_addresses">>$name
	else
		sudo sed -i '$a     addresses: [10.166.0.1]' $name
		sudo sed -i '15,$s/^/        /g' $name
	fi
	sudo sed -i '$a        interfaces:' $name
	sudo sed -i '16,$s/^/      /g' $name
	if [ $# -ne 0 ];then
		sudo sed -i '$a     - '$1'' $name
	else
		sudo sed -i '$a     - eno1' $name
	fi
	if [ $# -ne 0 ];then
		sudo sed -i '$a     - '$2'' $name
	else
		sudo sed -i '$a     - eno2' $name
	fi
	sudo sed -i '17,$s/^/        /g' $name
	sudo sed -i '$a        parameters:' $name
	sudo sed -i '19,$s/^/        /g' $name
	sudo sed -i '$a        mode: 802.3ad' $name
	sudo sed -i '20,$s/^/          /g' $name
	#sudo netplan apply
fi
 
 
 
 
 
 
 

标签:ubuntu20.04,shell,grep,name,sudo,echo,sed,location,链路
From: https://blog.51cto.com/u_64214/7409764

相关文章

  • Linux shell 环境变量 All In One
    Linuxshell环境变量AllInOne全局环境变量,systemwideenvironment系统级环境变量局部环境变量,localwideenvironment用户自定义环境变量shell的3种启动方式登录默认的交互式shell非登录的交互式shell运行脚本的非交互式shellshell的常见类型shba......
  • Tomcat7+ 弱口令 && 后台getshell漏洞
    目录Tomcat7+弱口令&&后台getshell漏洞1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描3、漏洞验证Tomcat7+弱口令&&后台getshell漏洞说明内容漏洞编号漏洞名称Tomcat7+弱口令&&后台getshell漏洞漏洞评级高危影响范......
  • 认识Shell脚本(Ubuntu)
    一:概述  系统管理员在管理主机时需要手动处理所有的工作,Shell脚本就可以让系统自动工作,Shell脚本不需要编译,可以直接执行,功能非常强大,可以帮助我们自动处理很多的工作,简化日常化管理。二:初步了解Shell脚本  在Linux的内部,很多的服务都是基于以Shell脚本(ShellScript)的形式提......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • shell中实现DNA序列一致性计算
     001、[root@pc1test02]#lsa.txttest.sh[root@pc1test02]#cata.txt##测试数据ATCCAGCTGGGCAACTATGGATCTAAGCAACCTTGGAACTATGCCATTATGGCACT[root@pc1test02]#cattest.sh##测试脚本#!/bin/bashforiin$(seq$(awk'NR==1{pr......
  • Tomcat7+ 弱口令 && 后台getshell漏洞
    Tomcat7+弱口令&&后台getshell漏洞环境说明Tomcat支持后台部署war文件,可以直接将webshell部署到web目录下。其中,欲访问后台,需要对应用户有相应权限。Tomcat7+权限分为:manger(后台管理)manger-gui拥有html页面权限manger-status拥有查看status的权限mager-jmx拥有jmx权限......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • 掌握Shell脚本,让你的工作效率翻倍!
    在工作中,我们经常需要使用Shell脚本来自动化一些重复性的任务。今天,我来分享一些工作中常见的Shell脚本,希望对大家有所帮助。检查服务器状态并记录日志。这个脚本可以用于定期检查服务器的状态,并在出现异常时发送邮件通知管理员。通过记录日志,我们可以追踪问题的发生和解决过程。#!......
  • 数据链路层设备-网卡和网桥
    数据链路层的设备有:网卡、网桥、交换机1网卡网卡(网络接口卡)网卡工作在数据链路层和物理层。其作用是将数据链路层的以太网报文变换成高低电平传输到物理层;将物理层到达的高低电平信号传输到数据链路层,数据链路层再进行以太网报文的组装。2网桥网桥是连接两个局域网的存......
  • 计算机网络(数据链路层)
    链路、数据链路和帧链路:从一个节点到相邻节点的一段物理线路(有线或无线),而中间没有任何其他的交换节点数据链路:基于链路。当在一条链路上传送数据时,除需要链路本身,还需要一些必要的通信协议来控制这些数据的运输,把实现这些协议的硬件和软件加在链路上,就构成了数据链路。计算......