当前位置: 首页 > 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.dtcms.com/a/272454.html

相关文章:

  • React封装过哪些组件-下拉选择器和弹窗表单
  • 常用的.gitconfig 配置
  • 【显示模块】嵌入式显示与触摸屏技术理论
  • HarmonyOS AI辅助编程工具(CodeGenie)UI生成
  • 时序数据库的存储之道:从数据特性看技术要点
  • 使用深度学习框架yolov8训练监控视角下非机动车电动车头盔佩戴检测数据集VOC+YOLO格式11999张4类别步骤和流程
  • UEditor 对接 秀米 手机编辑器流程与问题
  • ClickHouse 查看正在执行的SQL查询
  • Django--01基本请求与响应流程
  • go go go 出发咯 - go web开发入门系列(四) 数据库ORM框架集成与解读
  • selenium跳转到新页面时如何进行定位
  • 前缀和|差分
  • S7-1200 与 S7-300 PNS7-400 PN UDP 通信 TIA 相同项目
  • 缓存一致性问题(Cache Coherence Problem)是什么?
  • 使用Word/Excel管理需求的10个痛点及解决方案Perforce ALM
  • Word中字号与公式字体磅值(pt)的对应关系
  • 【AI智能体】智能音视频-通过关键词打断语音对话
  • RuoYi-Cloud ruoyi-gateway 网关模块
  • 海外盲盒系统:技术如何重构“信任经济”?
  • LLM 微调:从数据到部署的全流程实践与经验分享
  • 前端开发资源压缩与请求优化
  • FFmpeg滤镜相关的重要结构体
  • mongodbcdc脚本开发
  • 书生大模型实战营——1. 大语言模型原理与书生大模型提示词工程实践
  • 大数据学习7:Azkaban调度器
  • 记一次Android Studio编译报错:Execution failed for task ‘:app:compileDebugAidl‘
  • Redis数据类型之hash
  • Android 网络开发核心知识点
  • ICML 2025|快手提出了基于残差的超低码率图像压缩方法ResULIC
  • 【Bluedroid】蓝牙协议栈控制器能力解析与核心功能配置机制(decode_controller_support)