通过shell脚本一键修改Linux主机名和IP地址脚本

目录

1.前言 

2.shell脚本的具体实现以及解析 

1.1脚本功能概述

1.2脚本结构分析

3.致谢


1.前言 

在复杂的 Linux 系统管理中,高效准确地进行配置调整是至关重要的任务。当面临需要同时修改主机名和 IP 地址的情况时,手动操作不仅繁琐易错,还会耗费大量的时间和精力。

想象一下,在一个庞大的服务器集群环境中,或者在紧急的系统部署场景下,逐个手动修改主机名和 IP 地址的过程是多么令人头疼。而现在,有了一键修改 Linux 主机名和 IP 地址的脚本,这一切都将变得轻松无比。

这个脚本的出现,犹如一把神奇的钥匙,为 Linux 系统管理员打开了便捷之门。它以简洁高效的方式,将原本复杂的操作简化为一个命令的执行,极大地提高了工作效率。无论是经验丰富的专业人士,还是刚刚接触 Linux 系统管理的新手,都能从这个脚本中受益。

在接下来的文章中,我们将深入探讨这个强大脚本的具体功能、使用方法以及它为 Linux 系统管理带来的巨大变革。让我们一同走进这个充满创新与便利的 Linux 脚本世界,探索如何轻松实现主机名和 IP 地址的一键修改。

 

2.shell脚本的具体实现以及解析 
 

#!/bin/bash 
#author:xm
#desc: change ip and hostname # 检查参数数量是否正确
if [ $# -ne 2 ]; thenecho "脚本使用姿势不对。"echo "正确姿势: $0 主机名 ip地址。"exit 1
fi# 获取当前 IP 的最后一段
current_ip=`hostname -I | awk '{print $1}' | sed 's#.*\.##g'`
# 获取新 IP 的最后一段
new_ip=`echo $2 | sed 's#^.*\.##g'`
# 获取主机名参数
hostname=$1# 修改 ens33 配置文件中的 IP
sed -i "s#10.0.0.$current_ip#10.0.0.$new_ip#g" /etc/sysconfig/network-scripts/ifcfg-ens33
# 修改 ens36 配置文件中的 IP
sed -i "s#172.16.1.$current_ip#172.16.1.$new_ip#g" /etc/sysconfig/network-scripts/ifcfg-ens36# 重启网络服务
systemctl restart network# 设置主机名
hostnamectl set-hostname $hostname

1.1脚本功能概述

这个脚本的主要功能是根据用户提供的主机名和 IP 地址,修改特定网络接口配置文件中的 IP 地址,并设置新的主机名,最后重启网络服务使更改生效。

1.2脚本结构分析

  1. 注释部分

    • #author:xm:标明脚本的作者。
    • #desc: change ip and hostname:描述了脚本的功能是修改 IP 地址和主机名。
  2. 参数检查

    • if [ $# -ne 2 ]; then:检查脚本传入的参数数量是否为 2 个。如果参数数量不正确,会输出错误提示信息并退出脚本。
    • echo "脚本使用姿势不对。"echo "正确姿势: $0 主机名 ip地址。":向用户展示正确的脚本使用方法。
  3. 获取当前 IP 和新 IP 的最后一段

    • current_ip=hostname -I | awk '{print $1}' | sed 's#.*.##g'`:
      • hostname -I:获取当前主机的 IP 地址。
      • awk '{print $1}':提取出 IP 地址中的第一个 IP(如果有多个 IP 的话)。
      • sed 's#.*\.##g':使用正则表达式将 IP 地址中除最后一段以外的部分删除,只保留最后一段数字。
    • new_ip=echo $2 | sed's#^.*.##g'`:对用户输入的新 IP 地址进行同样的处理,获取新 IP 的最后一段数字。
  4. 获取主机名参数

    • hostname=$1:将脚本的第一个参数赋值给变量hostname,作为新的主机名。
  5. 修改配置文件中的 IP 地址

    • sed -i "s#10.0.0.$current_ip#10.0.0.$new_ip#g" /etc/sysconfig/network-scripts/ifcfg-ens33:使用sed命令在/etc/sysconfig/network-scripts/ifcfg-ens33文件中,将旧的 IP 地址(10.0.0. 加上当前 IP 的最后一段)替换为新的 IP 地址(10.0.0. 加上新 IP 的最后一段)。
    • sed -i "s#172.16.1.$current_ip#172.16.1.$new_ip#g" /etc/sysconfig/network-scripts/ifcfg-ens36:对/etc/sysconfig/network-scripts/ifcfg-ens36文件进行同样的操作。
  6. 重启网络服务和设置主机名

    • systemctl restart network:重启网络服务,使 IP 地址的更改生效。
    • hostnamectl set-hostname $hostname:使用hostnamectl命令设置新的主机名。


 


3.致谢
 

非常感谢您阅读我的博客!如果您有任何问题、建议或想了解特定主题,请随时告诉我。您的反馈对我非常重要,我将继续努力提供高质量的内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/879421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Hot100】LeetCode—287. 寻找重复数

目录 1- 思路题目识别快慢指针-类比链表判环 2- 实现⭐31. 下一个排列——题解思路 3- ACM 实现 原题链接:287. 寻找重复数 1- 思路 题目识别 识别1 :给定一个数组,寻找数组中的重复数。必须用 O(1) 的空间复杂度,且不能修改数组…

VMware Fusion Pro 13 Mac版虚拟机 安装Win11系统教程

Mac分享吧 文章目录 Win11安装完成,软件打开效果一、VMware安装Windows11虚拟机1️⃣:准备镜像2️⃣:创建虚拟机3️⃣:虚拟机设置4️⃣:安装虚拟机5️⃣:解决连不上网问题 安装完成!&#xff0…

fuxa搭建与使用(web组态)

1. 安装Node.js -> npm安装 参考网址:https://blog.csdn.net/WHF__/article/details/129362462 一、安装运行 C:\WINDOWS\system32>node -v v20.17.0 C:\WINDOWS\system32>npm -v 10.8.2 二、环境配置 在安装路径(D:\Program_Files\nodejs&a…

[数据集][目标检测]车油口挡板开关闭合检测数据集VOC+YOLO格式138张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):138 标注数量(xml文件个数):138 标注数量(txt文件个数):138 标注类别…

【2024.08】图模互补:知识图谱与大模型融合综述-笔记

阅读目的:假设已有一个知识图谱,如何利用图谱增强模型的问答,如何检索知识图谱、知识图谱与模型的文本如何相互交互、如何利用知识图谱增强模型回答的可解释性。 从综述中抽取感兴趣的论文进一步阅读。 来源:图模互补&#xff1…

TakePhotoX

Demo下载 TakePhotoXDemo Android 版本 APK 下载 - PGYER.COM 安装密码:123456 GitHub - yijiebuyi/TakePhotoX: 基于CameraX 实现拍照,二维码扫描,录像 功能 支持前后摄像头切换支持4:3 16:9 1:1 图片拍摄支持二维码扫描识别支持灯光控制…

Docker零基础入门

参考课程https://www.bilibili.com/video/BV1VC4y177re/?vd_source=b15169a302bee35f484245aecc69d4dd 参考书籍Docker 实践 - 面向 AI 开发人员的 Docker 实践 (dockerpractice.readthedocs.io) 1. 什么是Docker 1.1. Docker起源 随着计算机的发展,计算机上已经可以运行多…

CAN通讯常见错误纠正

CAN通讯常见错误 1.在使用CAN设备进行数据通讯时,有时候参数配置不当可能就会导致通讯的失败,如下图1所示,出现通信错误的原因是两个设备的波特率配置不一致导致。 图1 2.有时候在配置参数的时候,不能只关注波特率速度配置一致就…

Script-server: 一款开源的脚本管理工具,为你的Python脚本提供一个直观的 Web UI

在日常工作中,我们经常会使用各种脚本来自动化任务,提升效率。但传统的脚本管理方式往往伴随着一些困扰:复杂的命令行操作、难以理解的脚本参数、缺乏直观的反馈等等。这些问题,让原本应该便捷的脚本管理变得繁琐。 Script-server…

MySQL的(DDL、DCL、DQL、DML)语言学习

DDL(数据定义语言) 数据库操作 查询所有数据库: SHOW DATABASES;查询当前数据库: SELECT DATABASE();创建数据库: CREATE DATABASE [ IF NOT EXISTS ] 数据库名 [ DEFAULT CHARSET 字符集] [COLLATE 排序规则 ];删…

太速科技-基于XC7Z100+AD9361的双收双发无线电射频板卡

基于XC7Z100AD9361的双收双发无线电射频板卡 一、板卡概述 基于XC7Z100AD9361的双收双发无线电射频板卡是基于Xilinx ZYNQ FPGA和ADI的无线收发芯片AD9361开发的专用功能板卡,用于4G小基站,无线图传,数据收发等领域。 二、板卡…

QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第三期]

QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第三期] 第三期介绍:频道模块之频道成员 目录 QQ频道机器人零基础开发详解(基于QQ官方机器人文档)[第三期]第三期介绍:频道模块之频道成员获取子频道在线成员数获取频道成员列表获取频道身份组成员列…

Java项目: 基于SpringBoot+mybatis+maven课程答疑系统(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven课程答疑系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、…

102.WEB渗透测试-信息收集-FOFA语法(2)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:101.WEB渗透测试-信息收集-FOFA语法(1) FOFA使用实例 • title&q…

vue devtools的使用

vue devtools的使用 Vue Devtools 是一个强大的浏览器扩展,旨在帮助你调试和开发 Vue.js 应用。它支持 Chrome 和 Firefox 浏览器,并提供了一些工具和功能,可以让你更轻松地查看和调试 Vue 应用的状态和行为。以下是如何安装和使用 Vue Devtools 的详细指南。 安装 Vue De…

资深盘点:国内外知名的ERP管理系统厂商有哪些?

已经考虑引入ERP系统却担心面临以下问题?ERP系统流程僵化难以调整?流程与实际业务脱节?培训不到位、技术支持不及时导致难以实现全员使用、共创?市面上的ERP系统众多不知道如何选择? 今天就根据2024最新市场动态&…

ISAC: Toward Dual-Functional Wireless Networks for 6G and Beyond【论文阅读笔记】

此系列是本人阅读论文过程中的简单笔记,比较随意且具有严重的偏向性(偏向自己研究方向和感兴趣的),随缘分享,共同进步~ Integrated Sensing and Communications: Toward Dual-Functional Wireless Networks for 6G and…

react crash course 2024 (1)理论概念

state的作用 react hooks 而无需写一个class jsx 样式用 spa

【Android】SurfaceFlinger Dumpsys信息分析

SurfaceFlinger Dumpsys信息分析 dumpsys Surfaceflinger 用来输出SurfaceFlinger服务的状态信息,利用这些信息可以分析Android 画面层次、Display配置等等信息。 本文基于Android14。 dumpsys的实现 dumpsys Surfaceflinger命令对应的源码实现如下 源文件&…

决策树算法上篇

决策树概述 决策树是属于有监督机器学习的一种,起源非常早,符合直觉并且非常直观,模仿人类做决策的过程,早期人工智能模型中有很多应用,现在更多的是使用基于决策树的一些集成学习的算法。 示例一: 上表根据…