当前位置: 首页 > news >正文

自动化脚本配置网络IP、主机名、网段

对于rhel9

[root@rh9-node1 ~]# vim /usr/bin/vmset.sh#!/bin/bash# 检查网络接口是否存在
ifconfig "$1" &> /dev/null || {echo "net device $1 is not exist"exit
}# 检查目标IP是否可达
ping -c1 -w1 "$2" &> /dev/null && {echo "$2 is exist"exit
}# 删除旧的连接配置
grep "$1" -r /etc/NetworkManager/system-connections/ | awk -F: '{system("rm -fr " $1)}'# 创建新的连接配置文件
cat > /etc/NetworkManager/system-connections/"$1".nmconnection <<EOF
[connection]
id=$1
type=ethernet
interface-name=$1[ipv4]
method=manual
address1=$2/24,172.25.254.2
dns=8.8.8.8
EOF# 设置权限并重新加载连接
chmod 600 /etc/NetworkManager/system-connections/"$1".nmconnection
nmcli connection reload
nmcli connection up "$1"# 设置主机名
hostnamectl hostname "$3"
grep -q -e "$2\t$3" /etc/hosts || {echo -e "$2\t$3" >> /etc/hosts
}[root@rh9-node1 ~]# vmset.sh eth1 172.25.254.20 node1.timinglee.org
-bash: /usr/bin/vmset.sh: 权限不够
[root@rh9-node1 ~]# chmod +x /usr/bin/vmset.sh
[root@rh9-node1 ~]# vmset.sh eth1 172.25.254.20 node1.timinglee.org
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/6)

原来的eth1的IP

通过脚本修改后的IP

 对于rhel7

[root@rh7-node1 ~]# vim /usr/bin/vmset.sh#!/bin/bash# 检查网络接口是否存在
if ! ifconfig "$1" &>/dev/null && ! ip link show "$1" &>/dev/null; thenecho "网络设备 $1 不存在,可用设备: $(ls /sys/class/net/ | tr '\n' ' ')"exit 1
fi# 检查目标IP是否可达
if ping -c1 -w1 "$2" &>/dev/null; thenecho "IP地址 $2 已被占用"exit 1
fi# 删除旧的连接配置
find /etc/sysconfig/network-scripts/ -name "ifcfg-*" -exec grep -l "$1" {} + | xargs rm -f# 创建新的连接配置文件(RHEL7格式)
cat > /etc/sysconfig/network-scripts/ifcfg-"$1" <<EOF
DEVICE=$1
NAME=$1
TYPE=Ethernet
BOOTPROTO=none
IPADDR=$2
NETMASK=255.255.255.0
GATEWAY=172.25.254.2
DNS1=8.8.8.8
ONBOOT=yes
EOF# 重启网络服务(RHEL7方式)
systemctl restart network# 设置主机名
hostnamectl set-hostname "$3"
# 更新/etc/hosts文件
if ! grep -q "$2.*$3" /etc/hosts; thenecho "$2 $3" >> /etc/hosts
fi

http://www.xdnf.cn/news/1099549.html

相关文章:

  • Python正则表达式实战指南
  • k8s:安装 Helm 私有仓库ChartMuseum、helm-push插件并上传、安装Zookeeper
  • 快速分页wpf
  • 解锁localtime:使用技巧与避坑指南
  • 深度学习中的常见损失函数详解及PyTorch实现
  • 初学者对编译和链接的学习笔记(含预编译详解)
  • c++-内部类
  • 网络安全初级
  • python正则表达式(小白五分钟从入门到精通)
  • 技术学习_检索增强生成(RAG)
  • 客户频繁问询项目进度,如何提高响应效率
  • STM32中DMA(直接存储器访问)详解
  • 基于 SpringBoot + Vue 的 IT 技术交流和分享平台的设计与实现
  • Git保姆级入门实战:从安装配置到常用命令与常见错误解决
  • 机器学习 YOLOv5手绘电路图识别 手绘电路图自动转换为仿真软件(如LT Spice)可用的原理图,避免人工重绘
  • upload-labs靶场通关详解:第21关 数组绕过
  • H5微应用四端调试工具—网页版:深入解析与使用指南
  • Java 枚举详解:从基础到实战,掌握类型安全与优雅设计
  • 青岛门卫事件后:高温晕厥救援技术突破
  • Transformer:自注意力驱动的神经网络革命引擎
  • PLC框架-1.3.2 报文750控制汇川伺服的转矩上下限
  • 位运算算法题
  • arm架构,arm内核,处理器之间的关系
  • STM32F103之ModBus\RS232\RS422\RS485
  • 记录今天学习Comfyui的感受
  • 【运维架构】云计算运维架构师与基础设施,技术路线,Linux证书(标准化/定制化/CNCF,公有云/混合云/私有云)
  • pharokka phold--快速噬菌体注释工具
  • 1.1.1数据类型与变量——AI教你学Django
  • 一文讲清楚React Hooks
  • Spring for Apache Pulsar->Reactive Support->Quick Tour