使用Shell批量修改Linux服务器的IP --- shell百例

Posted liangbc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Shell批量修改Linux服务器的IP --- shell百例相关的知识,希望对你有一定的参考价值。

最近有一个给其他公司搭建集群的项目,目前机房有100台左右服务器,过几天差不多有80台服务器需要修改IP地址,所以打算通过虚拟机写出一个批量修改IP的shell脚本,虽然说修改IP这种事情最好不用shell来完成,但是我真不想一台一台的修改IP,而且脚本经过多遍测试,不会出现问题,且目前机房机器都是新机器没有任何业务。

  • 环境准备
主机名称 Ipv4地址
host1(PC服务器)

ens33: 192.168.4.1

ens34: 192.168.2.1

host2

ens33: 192.168.4.2

ens34: 192.168.2.22

host3

ens33: 192.168.4.10

ens34: 192.168.2.33

host4 

ens33: 192.168.4.20

ens34: 192.168.2.44

 

 

 

 

 

 

 

 

 

 

 

 

  1. 首先需要进行PC服务器到目标主机的免密登录
    技术图片
    [root@host1 mod_ip]# ssh-keygen -f /root/.ssh/id_rsa -N ‘‘  #通过命令创建使用rsa算法的私钥和公钥
    Generating public/private rsa key pair.
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:IjWy+w0cpresY+0KLP/+p+svF7ndcBy1Eb7IkUeKuNM root@host1
    The keys randomart image is:
    +---[RSA 2048]----+
    |              o. |
    |         . . =o  |
    |    . o . . +.oo |
    |     + . o ..+.. |
    |    o + S.E.o..  |
    | .   * oo.. o    |
    |. o o.+  + +     |
    | o .o+o++ . .    |
    |  .+=BXBo        |
    +----[SHA256]-----+
     [root@host1 mod_ip]# for i in 2 10 20; do ssh-copy-id 192.168.4.$i; done    # 通过命令给其他3台服务器传递公钥
    View Code
  2. 修改PC服务器的ssh配置文件,/etc/ssh/ssh_config,向文件的末尾添加两个行参数
技术图片
vim /etc/ssh/ssh_config
... ...
ServerAliaveInterval     1    # client每个1秒发送一次请求给server
ServerAliaveCountMax  1    # client发出请求后,server没有相应次数达到1,就自动断开连接

# 设置该参数的目的:因为脚本涉及到先通过ssh连接到目标主机,然后修改网卡文件后,重启网络服务,此时如果不修改此参数,client则会一直等待服务器的相应。执行完该脚本后可以把这两个参数给注释掉。
View Code

 

以上是关于使用Shell批量修改Linux服务器的IP --- shell百例的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统shell脚本之批量修改服务器密码

Linux 下使用 shell 批量修改文件名的三种方法

shell----批量修改多个文件中的IP地址

shell实现交互式在多台服务器批量执行命令

shell中怎么批量执行命令。

Shell脚本 使用sed流编辑器一键修改CentOS网卡IP地址