expect --批量传递公钥
#!/binbash
! rpm -qa |grep expect &> /dev/null && yum -y install expect #判断是否已下载expect 若没有则下载该服务
if [ ! -e /root/.ssh/id_rsa.pub ];then #判断公钥是否已存在 没有则生成
/usr/bin/expect <<EOF
set timeout 10
spawn ssh-keygen
expect "id_rsa"
send "\n"
expect "passphrase"
send "\n"
expect "agian"
send "\n"
expect eof
EOF
fi
while read file;do #遍历文件(ip 密码)
ip=`echo "$file" |awk '{print $1}'` #截取出ip
passwd=`echo "$file" | awk '{print $2}'` #截取出密码
/usr/bin/expect <<EOF
set timeout 5
spawn ssh-copy-id -i $ip
expect {
"yes" { send "yes\n"; exp_continue }
"$ip" { send "$passwd\n" }
}
expect eof
EOF
done < /root/host_name #保存ip 密码的文件路径 可自定义
cat /root/host_name
192.168.198.150 xxxxxxx
192.168.198.151 xxxxxxx
192.168.198.152 xxxxxxx
192.168.198.153 xxxxxxx
......
expect --批量传递公钥的更多相关文章
- expect批量分发公钥
sshkey.exp #!/usr/bin/expect# 由于是多台服务器,需要在shell脚本中循环调用该脚本 if { $argc != 2 } { send_user "usage: ...
- Linux centosVMware运行告警系统、分发系统-expect讲解、自动远程登录后,执行命令并退出、expect脚本传递参数、expect脚本同步文件、指定host和要同步的文件、shell项目-分发系统-构建文件分发系统、分发系统-命令批量执行
一运行告警系统 创建一个任务计划crontab -e 每一分钟都执行一次 调试时把主脚本里边log先注释掉 再次执行 没有发现502文件说明执行成功了,每日有错误,本机IP 负载不高 二.分发系统-e ...
- 28、activity之间传递数据&批量传递数据
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android ...
- 分发系统介绍、expect脚本远程登录、expect脚本远程执行命令、expect脚本传递参数
7月19日任务 20.27 分发系统介绍20.28 expect脚本远程登录20.29 expect脚本远程执行命令20.30 expect脚本传递参数 20.27 分发系统介绍 公司业务逐渐扩大时, ...
- (九)expect批量公钥推送
(1)expect实现ssh非交互登录 注意:注释不能出现这脚本里面 spawn表示开启一个会话 \r:表示回车,exp_continue :表示没有出现这样,继续往下执行 interact :停留在 ...
- 利用expect批量修改Linux服务器密码
一个执着于技术的公众号 背景 修改Linux系统密码,执行passwd即可更改密码.可如果有成千上百台服务器呢,通过ssh的方式逐一进行修改,对我们来说,工作量是非常大,且效率非常低下.因此采用批量修 ...
- Spring MVC Ajax 复杂参数的批量传递
要解决的问题: 如何组织客户端参数? Ajax 方法的配置属性如何定义才能传递复杂参数? 基于 SpringMVC 的服务端该如何接收? MyBatis 怎么处理批量更新? 客户端脚本 viewMes ...
- expect 批量自动部署ssh 免密登陆
[root@node2 ssh]# cat auto_ssh.sh #!/usr/bin/expect -f ########################################## #通 ...
- 分发系统介绍 expect脚本远程登录 expect脚本远程执行命令 expect脚本传递参数
expect脚本远程登录 yum install -y expect yum install -y tcl tclx tcl-devel 自动远程登录 #! /usr/bin/expect set h ...
- CentOS 通过 expect 批量远程执行脚本和命令
我们有时可能会批量去操作服务器,比如批量在服务器上上传某个文件,安装软件,执行某个命令和脚本,重启服务,重启服务器等,如果人工去一台台操作的话会特别繁琐,并浪费人力. 这时我们可以使用expect,向 ...
随机推荐
- 计算网络之MSTP协议与VRRP协议
一.MSTP协议 MSTP协议出现是基于STP协议和RSTP协议的,要了解MSTP协议就需要先了解其它两个协议 首先,STP协议是交换机生成树协议,它的出现主要是为了解决二层交换机环路的问题,当多个交 ...
- Vue公共loading升级版(处理并发异步差时响应)
公共loading是项目系统中很常见的场景,处理方式也不外乎三个步骤: 1.通过全局状态管理定义状态值(vuex.pinia等). 2.在程序主入口监听状态值变化,从而展示/隐藏laoding动画. ...
- C语言输入任意长度数组后,再在该数组中查找特定的值,并且可查找多个相同的值
C语言输入任意长度数组后,再在该数组中查找特定的值,并且可查找多个相同的值 例:在a[20] = { 99,42,57,74,46,85,32,78,40,33,74,88,65,27,38,69,5 ...
- Flask SocketIO 实现动态绘图
Flask-SocketIO 是基于 Flask 的一个扩展,用于简化在 Flask 应用中集成 WebSocket 功能.WebSocket 是一种在客户端和服务器之间实现实时双向通信的协议,常用于 ...
- 2019牛客国庆集训派对day3 G排列(状压dp)
题目传送门 一道很好的状压DP,状态是当前的占位情况,排序操作和第21次CSP认证的第四题作用类似. #include<cstdio> #include<vector> #in ...
- Tomact从认识到安装与详细使用
一.什么是Tomact? Tomcat是一个开源免费的轻量级Web服务器,它是一个软件程序,主要功能是提供网上信息浏览服务,对HTTP协议的操作进行封装,使得程序员不必对协议进行操作,让Web开发更加 ...
- C++学习笔记一:windows系统配置C++开发环境(VS code+g++/clang++)
1.下载vscode 官网下载地址: https://code.visualstudio.com/ 安装时选择把软件加入到环境变量中这个选项 2.打开vscode,安装c/c++扩展插件 3.下载gc ...
- nginx下的proxy_pass使用
之前的文章说到了,return,rewrite的使用,以及它们的使用场景,今天再来说一种代理的使用,proxy_pass,它属于nginx下的ngx_http_proxy_module模块,没有显示的 ...
- Meta3D -- 开源的Web3D低代码平台
大家好,Meta3D是开源的Web3D低代码平台,快速搭建Web3D编辑器,共建开放互助的web3d生态 Github 进入平台 功能演示 加入UI Control 加入Action脚本 运行&quo ...
- C#中对比两个对象是否相等最佳实践,IEquatable和IEqualityComparer的差异
前言 IEquatable<T> IEqualityComparer<T> 后言 参考 前言 IEquatable<T> 和 IEqualityComparer&l ...