Linux 服务器更改IP 地址 子网掩码 网关 和主机名的脚本 使用交换式的命令 用shell 脚本实现
时间: 2024-10-27 10:07:54 浏览: 40
在Linux服务器上,您可以使用shell脚本来批量更改IP地址、子网掩码、网关以及主机名。以下是一个简单的bash脚本示例,假设您正在使用的网络配置文件是`/etc/network/interfaces`:
```bash
#!/bin/bash
# 定义变量
old_ip="旧的IP地址"
new_ip="新的IP地址"
subnet_mask="子网掩码"
gateway="网关地址"
hostname="新主机名"
# 检查输入是否为空
if [ -z "$old_ip" ] || [ -z "$new_ip" ] || [ -z "$subnet_mask" ] || [ -z "$gateway" ] || [ -z "$hostname" ]; then
echo "所有参数都不能为空,请重新输入:"
exit 1
fi
# 查找并备份原有的配置
config_backup="/etc/network/interfaces.bak"
cp /etc/network/interfaces $config_backup
# 打开编辑器以更新配置
echo "正在编辑网络配置..."
vim +"/$old_ip" /etc/network/interfaces
# 替换旧的IP地址、子网掩码、网关和主机名
sed -i "s/$old_ip/$new_ip/g" /etc/network/interfaces
sed -i "s/subnet mask .*/subnet mask $subnet_mask/g" /etc/network/interfaces
sed -i "s/gateway .*/gateway $gateway/g" /etc/network/interfaces
sed -i "s/iface eth0 inet static/iface eth0 inet static name \"$hostname\"/" /etc/network/interfaces
# 保存并关闭编辑器
echo "修改完成,请检查并确认无误"
read -p "按回车键继续重启网络服务..."
# 重启网络服务
sudo service networking restart
echo "系统已重启网络服务,新的配置生效."
# 提供检查脚本效果的命令
阅读全文