ONBOOT=“yes”
CONFIG_FILE=“/etc/sysconfig/network-scripts/ifcfg-$NIC”
检查配置文件是否存在
if [ ! -f “$CONFIG_FILE” ]; then
echo “配置文件 $CONFIG_FILE 不存在,请检查网卡名是否正确。”
exit 1
fi
更新或添加网络配置项
function update_or_add_config {
KEY=$1
VALUE=KaTeX parse error: Expected group after '^' at position 14: 2 grep -q "^̲KEY=" “
C
O
N
F
I
G
F
I
L
E
"
∣
∣
e
c
h
o
"
CONFIG_FILE" || echo "
CONFIGFILE"∣∣echo"KEY=
V
A
L
U
E
"
>
>
"
VALUE" >> "
VALUE">>"CONFIG_FILE”
sed -i “/^
K
E
Y
=
/
s
∣
=
.
∗
∣
=
KEY=/ s|=.*|=
KEY=/s∣=.∗∣=VALUE|” “$CONFIG_FILE”
}
设置静态IP配置
update_or_add_config “BOOTPROTO” “static”
update_or_add_config “IPADDR” “
S
T
A
T
I
C
I
P
"
u
p
d
a
t
e
o
r
a
d
d
c
o
n
f
i
g
"
N
E
T
M
A
S
K
"
"
STATIC_IP" update_or_add_config "NETMASK" "
STATICIP"updateoraddconfig"NETMASK""NETMASK”
update_or_add_config “GATEWAY” “
G
A
T
E
W
A
Y
"
u
p
d
a
t
e
o
r
a
d
d
c
o
n
f
i
g
"
D
N
S
1
"
"
GATEWAY" update_or_add_config "DNS1" "
GATEWAY"updateoraddconfig"DNS1""DNS1”
update_or_add_config “ONBOOT” “$ONBOOT”
重新加载网络服务
systemctl restart network # 对于 CentOS 6 或早期版本
systemctl restart NetworkManager # 对于使用 NetworkManager 的系统
systemctl restart systemd-networkd # 对于使用 systemd-networkd 的系统
echo “静态IP配置已完成。”
(可选)验证网络配置是否生效
sleep 5
ip addr show dev $NIC
ping -c 1 $GATEWAY
此脚本首先检查配置文件是否存在,然后定义了一个函数 `update_or_add_config`,该函数用于检查和更新配置文件中的特定键值对。接着调用该函数依次设置 `BOOTPROTO`、`IPADDR`、`NETMASK`、`GATEWAY`、`DNS1` 和 `ONBOOT` 字段。最后,根据系统使用的网络管理服务重启网络服务以应用更改。
请注意,根据 CentOS 版本和网络管理服务的不同,可能需要调整重新加载网络服务的部分。同时,确保在运行脚本之前具有适当的权限,并考虑在生产环境中做好配置备份。
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**