Linux shell脚本编程——IP地址设置

Linux shell脚本编程——IP地址设置,第1张

#!/bin/bash

################################变量定义################################

nameDevice=eth0

ipAdddress=192.168.4.110

prefix=255.255.255.0

netMask=255.255.255.0

gateway=192.168.4.1

dns1=8.8.8.8

dns2=192.168.4.0

################################函数模块################################

##设置NetworkManager服务

function SetNetworkManagerDisable(){

  systemctl stop NetworkManager &&systemctl disable NetworkManager &&echo "NetworkManager is stop and disable" &&return 0 || return 1

}

##设置NetworkManager服务

function SetNetworkEnable(){

  systemctl restart network &&systemctl enable network &&echo "network is start and enable" &&return 0 || return 1

}

##查看服务器第一个网卡名称

function FindFirstNICName(){

  ifconfig|head -n 1|cut -d \: -f 1 &&[ $? == 0 ] &&nameDevice=`ifconfig|head -n 1|cut -d \: -f 1` &&return 0 || return 1

}

##设置服务器网卡IP地址

function SetNICFile(){

  cat >/etc/sysconfig/network-scripts/ifcfg-$nameDevice <<EOF

TYPE="Ethernet"

BOOTPROTO="none"

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

NAME=$nameDevice

DEVICE=$nameDevice

ONBOOT=yes

IPADDR=$ipAdddress

PREFIX=$prefix

NETMASK=$netMask

GATEWAY=$gateway

DNS1=$dns1

DNS2=$dns2

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_PRIVACY=no

EOF

}

##消除变量

function UnsetVariate(){

  unset nameDevice

  unset ipAdddress

  unset prefix

  unset netMask

  unset gateway

  unset dns1

  unset dns2

}

################################程序流程################################

##设置网络服务为network

FindFirstNICName

SetNICFile

SetNetworkEnable

SetNetworkManagerDisable

UnsetVariate

sed -i 's/\(IP=\)\S\S*/\1102.117.2.23/' filename

注:

1)将不变的部分放入带反斜杠的一对括号 \( \) 中并在替换时用 \1 引用。

2)\S用于匹配除单个空格符之外的所有字符。

awk -F"=" '{if($1=="IP")print("IP=102.117.2.23")}' filename >filename.new 2>/dev/null


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8690181.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存