批量生成ip地址shell脚本

一、为什么要批量生成ip地址?

当我们要批量管理目标主机,首先得生成他们的ip,如果手动写ip,低效而乏味。

比如前面的文章,批量配置免密ssh,如果有200台主机要配置,则可以批量生成他们的ip,用户名、密码

 

二、批量生成ip地址使用哪些工具?

1、seq命令,可以按顺序生成数字

2、sed命令,可以非交互式进行文档编辑,文本处理三剑客之一

以上两个命令的详细用法,本文暂不详细介绍,这里只讲如何用他们批量生成我们想要的ip地址

 

三、脚本

#!/bin/bash
# FileName:             ip.sh
# Version:              1.0
# Date:                 2020-03-28
# Author:               baige
# Description:          the script for generate IP address 
seq 253 > /root/host.txt                #创建1到253个数字并写入host.txt文件#
sed -i 's/^/192.168.0./g' host.txt      #在文件的每行开头,加入192.168.0#
sed -i 's/$/ root 123456/g' host.txt    #在文件的每行结尾,加入root 123456 也就是用户名密码#
cat /root/host.txt                      #执行完成,自动将文件内容输出到屏幕#

如果中间有一段ip想去掉,可以使用sed的删除方法,这里假如想删除前15个地址,可以

[root@localhost ~]# sed -i '1,15d' host.txt 
[root@localhost ~]# head host.txt 
192.168.0.16 root 123456
192.168.0.17 root 123456
192.168.0.18 root 123456
192.168.0.19 root 123456
192.168.0.20 root 123456
192.168.0.21 root 123456
192.168.0.22 root 123456
192.168.0.23 root 123456
192.168.0.24 root 123456
192.168.0.25 root 123456

 

点击了解更多技术资料和免费学习视频请加入讨论群:662736393
欢迎关注百哥IT技术专栏,联系QQ:1443262302
针对本技术点问题,欢迎加Q一起讨论学习

### 回答1: 批量推送公钥可以通过使用 SSH 的 authorized_keys 文件来实现。下面是一个示例脚本,可以将本地的公钥推送到多个远程主机上: ```bash #!/bin/bash # 设置需要推送的公钥文件路径 pubkey_path=~/.ssh/id_rsa.pub # 读取需要推送的主机列表 read -p "Enter remote hosts (separated by space): " hosts # 读取需要推送的用户 read -p "Enter remote user: " user # 循环遍历主机列表,将公钥复制到 authorized_keys 文件 for host in $hosts; do ssh $user@$host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && cat >> ~/.ssh/authorized_keys" < $pubkey_path done ``` 在运行脚本时,会提示输入需要推送公钥的远程主机列表和远程用户,然后将本地的公钥文件复制到远程主机的 authorized_keys 文件中。注意,脚本需要在本地已经存在公钥文件,并且需要在远程主机上安装了 SSH 服务。 ### 回答2: 批量推送公钥是一种在多个远程服务器上自动化部署公钥的方法,可以方便地实现无需人工干预的SSH远程登录。 在Shell脚本中,我们可以使用以下的步骤来批量推送公钥: 1. 在脚本中定义一个包含远程服务器IP地址的数组,例如: ``` servers=("192.168.1.101" "192.168.1.102" "192.168.1.103") ``` 2. 使用一个循环结构来遍历数组中的IP地址,并执行以下操作: a. 生成公钥对(如果不存在的话): ``` if [ ! -f ~/.ssh/id_rsa.pub ]; then ssh-keygen -t rsa -q -N '' -f ~/.ssh/id_rsa fi ``` b. 使用ssh-copy-id命令将公钥拷贝到远程服务器: ``` ssh-copy-id user@$server ``` 其中,`user`是远程服务器登录的用户名,`$server`是当前遍历到的IP地址。 3. 将以上代码保存为一个Shell脚本文件(例如`push_keys.sh`),并添加执行权限。 4. 在终端中执行Shell脚本: ``` ./push_keys.sh ``` 这样,脚本将会自动遍历数组中的每个IP地址生成并推送公钥到对应的远程服务器上。 需要注意的是,在执行ssh-copy-id命令时,可能会提示输入远程服务器的登录密码。为了避免这个问题,可以事先使用SSH Agent来管理私钥,或者在远程服务器上配置免密码登录。 希望以上回答对您有帮助! ### 回答3: Shell脚本批量推送公钥是一种方便快捷的方式,可以帮助用户在多台远程服务器上进行公钥的部署。下面是一个简单的Shell脚本示例: ``` #!/bin/bash # 指定要推送的公钥文件路径 public_key_file="path_to_public_key.pub" # 定义要连接的远程服务器列表 remote_servers=("server1" "server2" "server3") # 循环遍历远程服务器列表 for remote_server in "${remote_servers[@]}" do # 使用ssh-copy-id命令将公钥推送到远程服务器 ssh-copy-id -i $public_key_file $remote_server # 检查推送是否成功 if [ $? -eq 0 ] then echo "公钥已成功推送到服务器 $remote_server" else echo "公钥推送失败到服务器 $remote_server" fi done ``` 以上脚本假设您已经在本地生成了一个公钥文件,并且将路径存储在`public_key_file`变量中。您需要将`remote_servers`变量替换为您要推送公钥的实际远程服务器列表。 脚本中使用的`ssh-copy-id`命令可以将公钥复制到远程服务器的`~/.ssh/authorized_keys`文件中,完成公钥部署。在每个循环迭代中,脚本会检查命令的返回值来确定公钥是否成功推送到远程服务器。 使用这个Shell脚本,您可以轻松地在多台远程服务器上批量推送公钥,提高工作效率并加强服务器安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值