Linux常用SHELL脚本

  • 网络服务
    • 开启Network服务
      说明:此脚本用于关闭NetworkManger服务,重启network防止服务冲突导致IP配置无法生效
#!/bin/bash

status=$(systemctl status NetworkManager | grep 'active' | awk '{print $2}')  #检查NetworkManager服务状态

if [ "$status" = "active" ]; #检查状态是否为active
then
        systemctl stop NetworkManager  #停止服务
        if [ $? -eq 0 ];  
        then
                echo "succeed to stop NetworkManager"
        fi
        systemctl restart network  #重启network服务

        if [ $? -eq 0 ];  #判断是否重启成功
        then
                echo "succeed to restart network service"
        else
                echo "Failed to restart network service"
        fi
else
        systemctl restart network
                if [ $? -eq 0 ];then
                echo "succeed to restart network service"
        else
                echo "Failed to restart network service"
        fi
fi

  • 网卡配置
    • 说明:此脚本用于简化IP配置过程
#!/bin/bash
echo -e "\033[32m##此脚本用于配置网卡IP...##\033[0m"
echo " "

        echo "TYPE=Ethernet" >> "$config" #将TYPE=Ethernet 追加到配置文件中,表明网卡类型为以太网
    sed -i "/DNS1/ d" "$config" #删除包含DNS1的行
}   
network_config() { #该函数用于配置网卡的 IP 地址和子网掩码
    echo "IPADDR=$eth_ip" >> "$config" #将用户输入的IP地址追加到配置文件中
    echo "NETMASK=$eth_mask" >> "$config" #将用户输入的子网掩码追加到配置文件中
    function_GateWay_DNS #调用DNS函数让用户选择是否配置网关
    }
        read -p "请输入网关IP:" GateWay #让用户输入网关IP
        echo "GATEWAY=$GateWay" >> "$config" #将用户输入的网关IP追加到配置文件中
        function_GateWay_DNS
    elif [ $num -eq 2 ]; then
        read -p "请输入DNS地址:" DNS #提示用户输入 DNS 地址
        echo "DNS1=$DNS" >> "$config" #将DNS信息追加到配置文件中
        function_GateWay_DNS
    fi  
}   

function_network() { #该函数用于重启网络服务
    systemctl restart network
    [ $? -ne 0 ] && echo "Failed to restart network service." && exit 1 || echo "Success to restart network service."
}   

function_NetworkerManager() { #该函数用于检查NetworkManager 服务的状态,并根据状态进行相应的操作
    status=$(systemctl status NetworkManager | grep 'Active:' | awk '{print $3}' | tr -d '()')
        if [ "$status" != "dead" ]; then #测试 NetworkManager 服务是否处于活动状态
        echo "NetworkManager未关闭,正在尝试关闭并重启network..."
        systemctl stop NetworkManager
        [ $? -ne 0 ] && echo -e "\033[31mFailed to stop NetworkManager.\033[0m" && exit 1 || {
            function_network
            echo -e "\033[32mNetworkManager关闭成功,network重启成功.\033[0m" #告知用户 NetworkManager 服务关闭成功,网络服务重启成功。
            }
    else    
        echo -e "\033[32mNetworkManager已经关闭,正在尝试重启network...\033[0m"
        function_network
        fi
}       
configfile_check
eth_check
network_config
function_NetworkerManager

posted @ 2025-04-08 14:38  hanasea  阅读(8)  评论(0)    收藏  举报