需要用脚本修改主机名,涉及RedHat、SUSE系统,并且要求修改立即生效且不重启,下面就是我的脚本。

使用脚本的方法如下:

1 首先创建一个脚本文件,假如命名为ModifyHostname.sh: touch ModifyHostname.sh

2 然后给这个文件给这个文件赋予执行权限:chmod a+x ModifyHostname.sh

3 把下面的脚本内容,复制到ModifyHostname.sh文件中

4 执行脚本

sh ModifyHostname.sh Newhostname   #其中Newhostname就是新主机名

#!/bin/bash
PATH=/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin
export PATH

New_Hostname=$
OSRelease=`lsb_release -i|awk -F : '{print $2}'|sed 's/\t//g'`

# Modify /etc/hosts or add one loop entry
Old_Hostname=`grep ${HOSTNAME} /etc/hosts|wc -l`
"x ]; then
    sed -i "s/${HOSTNAME}/${New_Hostname}/g" /etc/hosts
else
    echo "127.0.0.10 ${New_Hostname}">>/etc/hosts
fi

# Modify different OS's hostname
if [[ ${OSRelease} =~ 'SUSE' ]]; then
    echo "this is SUSE machine";
    #modify /etc/HOSTNAME file
    echo ${New_Hostname}>/etc/HOSTNAME;
    #immediate effect
    /etc/rc.d/boot.localnet stop;
    /etc/rc.d/boot.localnet start;
elif [[ ${OSRelease} =~ 'RedHat' ]]; then
    echo "this is RedHat machine";
    sed -i "s/${HOSTNAME}/${New_Hostname}/g" /etc/sysconfig/network;
else
    echo "this is donnotknow";
fi

# Modify varible
hostname ${New_Hostname}
export HOSTNAME=${New_Hostname}

echo "Hostname modify successfull!"
#今天在写一个脚本遇到问题,----需要在sed中引入shell变量,在网上搜了变天才找到,经过测试
#
#这四种方法都可用,在这里跟大家分享下,=---同时谢谢netman大哥,前辈就是前辈哈哈
#
#.eval sed ’s/$a/$b/’ filename
#.sed "s/$a/$b/" filename
#.sed ’s/’$a’/’$b’/’ filename
#.sed s/$a/$b/ filename

Linux修改主机名脚本-不重启-支持RedHat、SUSE的更多相关文章

  1. linux修改主机名的方法

    linux修改主机名的方法 用hostname命令可以临时修改机器名,但机器重新启动之后就会恢复原来的值. #hostname   //查看机器名#hostname -i  //查看本机器名对应的ip ...

  2. linux修改主机名(hostname)转载

    Linux修改主机名的方法 用hostname命令可以临时修改机器名,但机器重新启动之后就会恢复原来的值. #hostname   //查看机器名#hostname -i  //查看本机器名对应的ip ...

  3. Linux修改主机名!(图文)

    本篇作为之前的补充篇,如果想修改自己的主机名,方便老师检查作业是否是自己做的,可以用修改主机名的方法,那么怎么修改呢? 一. 使用hostname命令 比如我现在的主机名是haozhikuan-hbz ...

  4. CentOS Linux 修改主机名

    一.CentOS5 修改主机名 二.CentOS6 修改主机名 三.CentOS7 修改主机名 静态的(Static hostname)        "静态"主机名也称为内核主机 ...

  5. linux修改主机名

    查看机器名:uname -a 修改机器名: redhat中修改主机名 第一步:#hostname oratest 第二步:修改/etc/sysconfig/network中的hostname 第三步: ...

  6. Linux修改主机名方法

    [root@lyx ~]# vim /etc/hosts   vim代表修改,进入hosts文件进行添加192.168.10.128 hadoop128 [root@lyx ~]# hostname ...

  7. Redhat Linux 修改主机名(HOSTNAME)

    hostname #查看当前主机的主机名hostname NEWHOSTNAME #临时修改当前主机名 修改主机名vi /etc/sysconfig/network #通过配置文件修改主机名NETWO ...

  8. Linux 修改主机名 和 ip 映射关系

    1. 修改主机名 vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=hadoop 2. 修改主机名和IP的映射关系 vim /etc/hosts 1 ...

  9. linux修改主机名+免密认证+关闭防火墙

    在很多软件安装的时候都有这些需求,因此在这里一起讲一下 修改主机名 简单的使用 hostnamectl 命令就好了 hostnamectl set-hostname NAME 免密认证 准备工作,修改 ...

随机推荐

  1. J2EE 项目本地发布路径及修改

    J2EE的项目Run on Server后,在tomcat安装目录下的webapps没有出现所建立的工程名字. 很明显项目并没有自动部署到tomcat的webapps中而是部署在了别的容器中. 在内置 ...

  2. 教你用.Net来玩微信跳一跳

    目前开发的所有代码都已经上传到了GitHub.欢迎大家来Star https://github.com/GiantLiu/AutoJump 目前程序分为“全自动版本”和“半自动版本” 全自动版本 We ...

  3. Python基础-*args和**kwargs魔法变量

    在学习Python时,总会遇到*args和**kwargs这两个魔法变量,那么它们到底是什么? 首先,并不是必须写成*args和**kwargs.只有变量前面的*(星号)才是必须的,你也可以写成*va ...

  4. MFC中属性表单和向导对话框的使用

    每次在使用MFC创建一个框架时,需要一步步选择自己的程序的外观,基本功能等选项,最后MFC会生成一个基本的程序框架,这个就是向导对话框:而属性表单则是另外一种对话框,表单上有多个属性页,每点击某一页, ...

  5. Django-- 多数据库联用

    django项目中使用多个数据库的方法, 多个数据库的联用 以及多数据库时数据导入导出的方法. 直接给出一种简单的方法吧,想了解更多的到官方教程,点击此处 给每个app都可以单独的设置一个数据库 se ...

  6. python模块-OS模块详解

    1.按字母分 os相关的函数:143个.按字母排序如下: ['abort', 'access', 'altsep', 'chdir', 'chmod', 'chown', 'chroot', 'clo ...

  7. weui中的日期选择控件关于时间段的设置!

    近日用到了日期控件,但是需要把时和分去掉,功能上是做一个预约的功能,所以只需要在年月日后面提供时间段的选择. BUG在于如果第一次点开弹框而没做任何操作,然后点了其他任意区域则弹框关闭,甚至你的8:0 ...

  8. bzoj 2946

    Description          给出几个由小写字母构成的单词,求它们最长的公共子串的长度. 任务: l        读入单词 l        计算最长公共子串的长度 l        输 ...

  9. HDU5131-Song Jiang's rank list HDU5135-Little Zu Chongzhi's Triangles(大佬写的)

    Song Jiang's rank list Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java ...

  10. c# for 和 foreach 的区别

    foreach 能够进行foreach的类型结构,都必须实现IEnumerable接口. IEnumerable接口,有一个GetEnumerator的方法,返回一个实现IEnumerator接口的对 ...