Linux操作系统永久修改主机名

先查看linux版本

[root@localhost ~]# cat /etc/redhat-release

主机名一般默认为 localhost.localdomain,可通过hostname 查看

[root@localhost ~]# hostname
localhost.localdomain

centos7

1、修改/etc/hostname文件,将localhost.localdomain改成自己定义的主机名

vim /etc/hostname

2、修改/etc/hosts文件,方便访问本机主机名时能解析出本机ip地址

sed -i 's/localhost.localdomain/local-192-168-203-80/g' /etc/hosts

3、重启使主机名生效,可使用hostname查看

reboot

centos6

1、修改/etc/sysconfig/network,将自己定义的hostname添加到 HOSTNAME= 之后

vim /etc/sysconfig/network

2、修改/etc/hosts文件,方便访问本机主机名时能解析出本机ip地址

sed -i 's/localhost.localdomain/local-192-168-203-80/g' /etc/hosts

3、重启使主机名生效,可使用hostname查看

reboot

临时修改可直接使用hostname接主机名,su重新登录即可显示,但是重启失效

hostname local-192-168-203-80

使用脚本修改主机名


#!/bin/bash


# 获取centos版本
version=`cat /etc/redhat-release |awk '{print $4}'|awk -F'.' '{print $1}'`

# 获取ip路径
path=/etc/sysconfig/network-scripts

# 判断并修改主机名文件和hosts文件
if [ $version == '7' ];then
    ip=`awk -F'=' '/^IP/ {print $2}' $path/ifcfg-ens33|tr '.' '-'`
    echo "local-$ip" > /etc/hostname
    sed -i "s/localhost.localdomain/local-$ip/g" /etc/hosts
elif [ $version == '6' ];then
    ip=`awk -F'=' '/^IP/ {print $2}' $path/ifcfg-eth0|tr '.' '-'`
    sed -i "/^HOSTNAME=/ s/localhost.localdomain/local-$ip" /etc/sysconfig/network
    sed -i "s/localhost.localdomain/local-$ip/g" /etc/hosts
fi

# 确认是否重启
read -p "Rboot now(y/n)?" instring
if [ $instring == "y" ];then
    reboot
elif [ $instring == "n" ];then
    echo "Quit!!!"
    exit 1
esle
    echo "error!!!"
    exit 2
fi

如果需要批量修改主机名,可以使用ansible的script模块在中控机上进行操作

ansible hostname -m script -a "path"
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值