Linux修改主机名脚本-不重启-支持RedHat、SUSE

需要用脚本修改主机名,涉及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=$1
OSRelease=`lsb_release -i|awk -F : ‘{print $2}‘|sed ‘s/\t//g‘`

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

#2 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

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

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

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

Linux 修改主机名

修改 Linux 主机名 Linux 下什么都比较麻烦,就连修改主机名也不例外.Linux 安装好后,其默认的主机名是 localhost.修改 Linux 主机名需要3步. 使用 hostname 修改当前主机名.hostname new-hostname 修改 /etc/sysconfig/network  配置文件,以便下次重启的时,使用新的主机名. (永久有效)打开 /etc/sysconfig/network 文件,修改 HOSTNAME=new-hostname.domainname

批量修改主机名脚本

脚本思路:生成秘钥后,批量传输秘钥,根据hosts文件批量修改主机名. 运行环境:用户名统一是root,密码统一是123456 脚本 #!/bin/bash # check expect first ############################################################# passwd=123456 key=/root/.ssh/id_rsa ip=`ifconfig eth0 | sed -n '2p'| cut -d: -f2 | cut -

linux修改主机名

1,取得管理员权限,命令su 2,修改/etc/sysconfig/network文件中hostname项,命令 vi /etc/sysconfig/network (vi的使用,进入文件界面后,注意右下角的提示为空则表示命令模式,否则是你选择的模式.进入后点击i进入插入模式编辑文档.编辑完成点击Esc退出到命令模式.使用shift+ZZ退出并保存.如果遇见无法修改文件请看我的另一篇关于vi无法修改文件的随笔) 原来的 修改后注意左下角我已经退出编辑模式进入命令模式 3,修改主机名为name,命

Redhat Linux 修改主机名(HOSTNAME)

hostname #查看当前主机的主机名hostname NEWHOSTNAME #临时修改当前主机名 修改主机名vi /etc/sysconfig/network #通过配置文件修改主机名NETWORKING=yesHOSTNAME=NEWHOSTNAME #修改该值作为主机名,如:NEWPCvi /etc/hosts###########################vi /etc/hosts //设置本地DNS解析文件127.0.0.1 localhost.localdomain loc

老男孩教育每日一题-第77天-说说如何给linux修改主机名

参考答案: 查看主机名: hostname 临时修改主机名: hostname oldboyedu 永久修改主机名: /etc/sysconfig/network 让主机名能解析 (ping 主机名可以畅通) ip地址 主机名 放入到/etc/hosts 10.0.0.200 oldboyedu 备注 今天是每日一题陪伴大家的第77天,期待你的进步.对于题目和答案的任何疑问,请在博客评论区留言.往期题目索引http://lidao.blog.51cto.com/3388056/1914205

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

在很多软件安装的时候都有这些需求,因此在这里一起讲一下 修改主机名 简单的使用 hostnamectl 命令就好了 hostnamectl set-hostname NAME 免密认证 准备工作,修改主机文件 /etc/hosts [[email protected] .ssh]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost lo

修改主机名脚本

#!/bin/bash if [ $# == 1 ] then HOSTNAME=$1 else echo "脚本执行需要参数,例如[sh *.sh test]" exit fi sed -i "s#`uname -n`#$1#g" /etc/sysconfig/network sed -i "s#`uname -n`#$1#g" /etc/hosts grep $1 /etc/hosts hostname $1 偶尔需要用到,暂且放到博客上,防

linux 修改主机名 【[email protected]主机名 ~】

centos 7修改方式: hostnamectl  set-hostname   hostuser reboot 或者直接vi /etc/hostname 添加内容: hostuser 检查修改效果 [[email protected] ~]$ hostnamehostuser[[email protected] ~]$ cat /etc/hostnamehostuser[[email protected] ~]$ 原文地址:https://www.cnblogs.com/SunshineKi

CentOS修改主机名(hostname)

需要修改两处:一处是/etc/sysconfig/network,另一处是/etc/hosts,只修改任一处会导致系统启动异常.首先切换到root用户. /etc/sysconfig/network 用任一款你喜爱的编辑器打开该文件,里面有一行 HOSTNAME=localhost.localdomain (如果是默认的话),修改 localhost.localdomain 为你的主机名. /etc/hosts 打开该文件,会有一行 127.0.0.1 localhost.localdomain