Linux---常用shell脚本

目录

一.网络服务

开启network服务

网口IP配置

聚合口配置


前言

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


一.网络服务

开启network服务

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

bash 复制代码
#!/bin/bash

# 获取 NetworkManager 的 Active 状态(去除括号)
status=$(systemctl status NetworkManager | grep 'Active:' | awk '{print $3}' | tr -d '()')

# 检查状态是否不是 dead
if [ "$status" != "dead" ]; then
    echo "NetworkManager is not dead. Stopping NetworkManager and restarting network..."

    # 停止 NetworkManager
    systemctl stop NetworkManager

    # 检查 systemctl stop 的退出状态
    if [ $? -ne 0 ]; then
        echo "Failed to stop NetworkManager."
        exit 1
    fi

    # 重启 network 服务(注意:这个服务名可能因系统而异,例如在某些系统上可能是 'networking')
    systemctl restart network

    # 检查 systemctl restart 的退出状态
    if [ $? -ne 0 ]; then
        echo "Failed to restart network service."
        exit 1
    fi

    echo "NetworkManager stopped and network service restarted successfully."
else
    echo "NetworkManager

网口IP配置

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

bash 复制代码
#!/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 "重启成功"

聚合口配置

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

bash 复制代码
#!/bin/bash
status=$(systemctl status NetworkManager | grep 'Active:' | awk '{print $3}' | tr -d '()')
if [ "$status" != "dead" ]
then
    echo "NetworkManager服务已开启"
else
    # 开启 NetworkManager
    echo "正在重启NetworkManager"
    systemctl restart NetworkManager
    echo "重启成功"
fi

# 检查是否存在 bond0 连接
if nmcli connection show | grep -q 'bond0'; then
    echo "Warning: 'bond0' connection already exists."
    exit 1  # 或者执行其他适当的操作,例如删除现有连接再重新创建
fi

if [ $# -ne 3 ]; then
    echo "Usage: $0 <ip_address> <interface1> <interface2>"
    exit 1
fi

ip_address=$1
interface1=$2
interface2=$3


nmcli 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."

总结

相关推荐
春日见2 小时前
如何入门端到端自动驾驶?
linux·人工智能·算法·机器学习·自动驾驶
dys_Codemonkey2 小时前
如何在树莓派上用 VS Code 优雅直连内部的 Ubuntu 子系统/容器用来访问容器内的文件和代码?
linux·运维·ubuntu·树莓派
炸膛坦客2 小时前
Linux - Ubuntu - PC端:(五)shell 操作(终端命令,2026)→ 3)基础命令,27 个常用命令
linux·ubuntu
·醉挽清风·3 小时前
学习笔记—Linux—文件IO
linux·服务器·学习
宁波阿成3 小时前
OpenClaw 在 Ubuntu 22.04.5 LTS 上的安装与问题处理记录
java·linux·ubuntu·openclaw·龙虾
上海合宙LuatOS3 小时前
LuatOS核心库API——【 string】字符串操作
运维·服务器·物联网·junit·硬件工程·信息与通信·嵌入式实时数据库
徐子元竟然被占了!!3 小时前
Linux的cat
linux·运维·服务器
带娃的IT创业者3 小时前
WeClaw 离线消息队列实战:异步任务队列如何保证在服务器宕机时不丢失任何一条 AI 回复?
运维·服务器·人工智能·python·websocket·fastapi·实时通信
kc胡聪聪4 小时前
nginx的性能优化与监控
运维·nginx·性能优化
上海合宙LuatOS4 小时前
LuatOS核心库API——【sys】LuatOS运行框架
运维·服务器·物联网·硬件工程·lua·软件工程·信息与通信