Linux---常用shell脚本

embedded/2024/11/18 2:40:47/

目录

 一.网络服务

开启network服务

 网口IP配置

 聚合口配置


前言

秋招拿到了科大讯飞的offer,可是由于某些原因无法完成三方签署,心情还是比较失落的,或许写一篇技术博客,活跃一下大脑思维也是一种不错的放松方式。


 一.网络服务

开启network服务

此脚本用于关闭NetworkManger服务重启network防止服务冲突导致IP配置无法生效

#!/bin/bash# 获取 NetworkManager 的 Active 状态(去除括号)
status=$(systemctl status NetworkManager | grep 'Active:' | awk '{print $3}' | tr -d '()')# 检查状态是否不是 dead
if [ "$status" != "dead" ]; thenecho "NetworkManager is not dead. Stopping NetworkManager and restarting network..."# 停止 NetworkManagersystemctl stop NetworkManager# 检查 systemctl stop 的退出状态if [ $? -ne 0 ]; thenecho "Failed to stop NetworkManager."exit 1fi# 重启 network 服务(注意:这个服务名可能因系统而异,例如在某些系统上可能是 'networking')systemctl restart network# 检查 systemctl restart 的退出状态if [ $? -ne 0 ]; thenecho "Failed to restart network service."exit 1fiecho "NetworkManager stopped and network service restarted successfully."
elseecho "NetworkManager

 网口IP配置

此脚本用于配置网口IP地址,简化命令行操作

#!/bin/bash
interfaces=$(ip a | awk '/^[0-9]: / {printf "%s ", $2} END {print ""}')
echo "可选择网卡如下:$interfaces"
read -p "请输入网口:" eth
read -p "请输入IP:" eth_ip
read -p "请输入mask:" eth_mask
echo "IPADDR=$eth_ip" >> /etc/sysconfig/network-scripts/ifcfg-$eth
echo "NETMASK=$eth_mask" >> /etc/sysconfig/network-scripts/ifcfg-$eth
echo "正在重启网络"
systemctl restart network
echo "重启成功"

 聚合口配置

此脚本用于自动配置聚合口

#!/bin/bash
status=$(systemctl status NetworkManager | grep 'Active:' | awk '{print $3}' | tr -d '()')
if [ "$status" != "dead" ]
thenecho "NetworkManager服务已开启"
else# 开启 NetworkManagerecho "正在重启NetworkManager"systemctl restart NetworkManagerecho "重启成功"
fi# 检查是否存在 bond0 连接
if nmcli connection show | grep -q 'bond0'; thenecho "Warning: 'bond0' connection already exists."exit 1  # 或者执行其他适当的操作,例如删除现有连接再重新创建
fiif [ $# -ne 3 ]; thenecho "Usage: $0 <ip_address> <interface1> <interface2>"exit 1
fiip_address=$1
interface1=$2
interface2=$3nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=100"
nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname ${interface1} master bond0
nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname ${interface2} master bond0
nmcli connection modify bond0 ipv4.addresses ${ip_address}/24 ipv4.method manual  connection.autoconnect yes
nmcli connection modify bond0 connection.autoconnect-slaves 1
nmcli connection up bond0
echo "Bond connection created successfully."

总结


http://www.ppmy.cn/embedded/138412.html

相关文章

Linux基础(十七)——Linux 帐号管理与 ACL 权限设置

Linux 帐号管理与 ACL 权限设置 1.UID与GID2./etc/passwd3./etc/shadow4./etc/group5./etc/gshadow6.有效群组和初始群组7.账号管理7.1 增加、修改、删除账户7.2 增加、修改、删除群组7.3 实例 8.ACL使用8.1 ACL定义8.2 查询与设置ACL 9.用户切换9.1 su9.2 .sudo 10. 使用者的特…

【复盘笔记】国考25一期_套题8

目录 一、言语理解1.选词填空2.片段阅读 二、判断推理1.图形推理2.定义判断3.类比推理4.逻辑判断 三、资料分析 【笔记说明】&#xff1a;所用试卷为花s老师的套题班试卷&#xff0c;个别过于简单的题目未做解析。该笔记为个人学习自用&#xff0c;顺便分享&#xff0c;希望对您…

Kotlin深度面试题:协程、密封类和高阶函数

文章目录 知识回顾前言源码分析1.面试题目1&#xff1a;Kotlin中的协程与线程的区别是什么&#xff1f;如何在Android中使用协程进行异步编程&#xff1f;2.面试题目2&#xff1a;Kotlin中的扩展函数和扩展属性是什么&#xff1f;如何在Android开发中使用它们&#xff1f;3. 面…

处理namespace问题:Namespace not specified for AGP 8.0.0

How do I fix ‘namespace not specified’ error in Android Studio? Namespace not specified for AGP 8.0.0 解决方案 <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/androi…

Python 操作 Elasticsearch 全指南:从连接到数据查询与处理

文章目录 Python 操作 Elasticsearch 全指南&#xff1a;从连接到数据查询与处理引言安装 elasticsearch-py连接到 Elasticsearch创建索引插入数据查询数据1. 简单查询2. 布尔查询 更新文档删除文档和索引删除文档删除索引 批量插入数据处理分页结果总结 Python 操作 Elasticse…

C++基础:Pimpl设计模式的实现

2024/11/14: 在实现C17的Any类时偶然接触到了嵌套类的实现方法以及Pimpl设计模式&#xff0c;遂记录。 PIMPL &#xff08; Private Implementation 或 Pointer to Implementation &#xff09;是通过一个私有的成员指针&#xff0c;将指针所指向的类的内部实现数据进行隐藏。 …

Spark 读取 HDFS 文件时 RDD 分区数的确定原理与源码分析

在 Spark 中&#xff0c;RDD 的分区数对于并行计算的效率非常重要&#xff0c;SparkCore 读取 HDFS 文件时 RDD 分区数的确定受多方面因素的影响。本文将从源码的角度分析 Spark 如何确定 RDD 分区数&#xff0c;并通过代码示例和案例帮助理解分区策略。 Spark RDD 分区数确定…

【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-最大的数

CL13 最大的数(20 分) 输入一个有 n 个无重复元素的整数数组 a&#xff0c;输出数组中最大的数。提示&#xff1a;如使用排序库函数 sort()&#xff0c;需要包含头文件#include 。输入&#xff1a; 第一行是一个正整数 n(2<n<20)&#xff1b; 第二行包含 n 个不重复的整…