Linux批量修改多台服务器的主机名(hostname)

一。场景介绍:

       一个环境下有非常多的服务器时,每台服务器的Hostname都不一样,有成千上百台服务器,如果通过ssh的方式逐一进行修改,那么对我们来说,工作量是非常巨大,且效率非常低下,况且这个主机名对于我们平时运维也是至关重要,当我们ssh到某一台服务器,如果没有设置主机名,那么就需要通过其他途径来得知该服务器的位置信息等等,给我们运维人员带来很大的运维烦恼。

 


二。准备工作

        1.所有服务器操作系统root账户密码需要一致,且网络互通

        2.pssh工具:可以实现批量执行命令,发送文件等等,详细可以参考《Linux批量操作pssh工具》

        4.设计好每台服务器IP与主机名Hostname对应关系      /root/host    例如:

192.168.225.128         server1

192.168.225.129         server2

192.168.225.130         server3

192.168.225.131         server4

192.168.225.132         server5

192.168.225.133         server6

192.168.225.134         server7

192.168.225.135         server8

192.168.225.136         server9

三。批量修改主机名

        1.添加hostname.sh文件

                        [root@server1 ~]# vim hostname.sh 

                                            ip=`ifconfig eth0 | grep 'inet ' | awk '{print $2}'`

                                            hostname=`cat /root/host | grep $ip | awk '{print $2}'`

                                            echo $ip

                                            echo $hostname

                                            hostnamectl set-hostname --static $hostname

                                            hostname $hostname

                    注意:咱们是通过服务器IP地址来修改主机名的,上面接口一定要对应准确,命令较为简单。

           2.把生成的这两个文件(host与hostname.sh)通过pscp工具发送到所有的服务器上任意的同一目录下

            pscp -h iplist /root/host /root/hostname.sh /root/        # iplist是所有服务器IP,如果不会使用,请看准备工作第二点。

          3.通过pssh工具,批量给予hostname.sh这个文件的可执行权限

            pssh -h iplist -i  'chmod +x /root/hostname.sh'             # iplist是所有服务器IP,如果不会使用,请看准备工作第二点。

          4.通过pssh工具,批量执行hostname.sh文件

            pssh -h iplist -i  'sh  /root/hostname.sh'

 四。其他

        这种批量修改方法比较简单,合适咱们这种不经常使用脚本的人,另外以上操作系统为CentOS7以上,如果您的操作系统为centos7以下,根据操作系统修改hostname的方法不同,批量修改主机名的方法都是大同小异。其他哥们如果有更好更简单方便的方法,也请指导指导,谢谢。

相关推荐