Shell脚本根据终端输入地址,修改linux下ifcfg-eth0,ifcfg-eth1的IPADDR、NETMASK、GATEWAY字段,如果用户输入内容,则判断是否对方IP规则;如果用户没有输入,则按默认值填写。
时间: 2024-11-20 19:44:52 浏览: 28
在Linux环境下,可以通过编写shell脚本来实现这个功能。这里是一个简单的示例,该脚本会提示用户输入新的IP地址、子网掩码和网关,然后更新`ifcfg-eth0`和`ifcfg-eth1`文件的相应字段。请注意,实际操作可能需要管理员权限。
```bash
#!/bin/bash
# 定义默认值
IPADDR_ETH0="192.168.1.1"
NETMASK_ETH0="255.255.255.0"
GATEWAY_ETH0="192.168.1.254"
IPADDR_ETH1="192.168.2.1"
NETMASK_ETH1="255.255.255.0"
GATEWAY_ETH1="192.168.2.254"
# 请求用户输入新值(可选)
read -p "请输入eth0的IP地址(空则使用默认): " IPADDR_ETH0
read -p "请输入eth0的子网掩码(空则使用默认): " NETMASK_ETH0
read -p "请输入eth0的网关(空则使用默认): " GATEWAY_ETH0
read -p "请输入eth1的IP地址(空则使用默认): " IPADDR_ETH1
read -p "请输入eth1的子网掩码(空则使用默认): " NETMASK_ETH1
read -p "请输入eth1的网关(空则使用默认): " GATEWAY_ETH1
# 更新ifcfg-eth0
echo "iface eth0 inet static" > /etc/sysconfig/network-scripts/ifcfg-eth0.bak
echo "IPADDR=$IPADDR_ETH0" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "NETMASK=$NETMASK_ETH0" >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo "GATEWAY=$GATEWAY_ETH0" >> /etc/sysconfig/network-scripts/ifcfg-eth0
# 更新ifcfg-eth1
echo "iface eth1 inet static" > /etc/sysconfig/network-scripts/ifcfg-eth1.bak
echo "IPADDR=$IPADDR_ETH1" >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo "NETMASK=$NETMASK_ETH1" >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo "GATEWAY=$GATEWAY_ETH1" >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo "配置已保存。重启网络服务生效。"
systemctl restart networking
```
运行此脚本后,用户可以选择输入新的IP地址和子网掩码,如果未输入则使用默认值。记得在执行之前,先备份原始的`ifcfg-eth0`和`ifcfg-eth1`配置以防意外。
阅读全文