使用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 |
- 首先需要进行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 key‘s 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台服务器传递公钥
- 修改PC服务器的ssh配置文件,/etc/ssh/ssh_config,向文件的末尾添加两个行参数
vim /etc/ssh/ssh_config ... ... ServerAliaveInterval 1 # client每个1秒发送一次请求给server ServerAliaveCountMax 1 # client发出请求后,server没有相应次数达到1,就自动断开连接 # 设置该参数的目的:因为脚本涉及到先通过ssh连接到目标主机,然后修改网卡文件后,重启网络服务,此时如果不修改此参数,client则会一直等待服务器的相应。执行完该脚本后可以把这两个参数给注释掉。
以上是关于使用Shell批量修改Linux服务器的IP --- shell百例的主要内容,如果未能解决你的问题,请参考以下文章