shell 脚本交互模式expect批量上传ssh密钥

#!/usr/bin/bash
###批量上传密钥

V.1.0 by chenght 2019-03-29

password=12345qwert
for i in {2..254} ######批量获取ip地址
do
{
ip=192.28.1.$i
ping -c1 -W1 $ip &>/dev/null ####记录成功的ip
if [ $? = 0 ];then
echo "$ip">>ip.txt

EOF 交互内容容易出错,请注意
   /usr/bin/expect <<-EOF
   set timeout 10
   spawn ssh-copy-id -i /root/.ssh/id_rsa.pub -p 10022 admin@$ip   ##上传的密钥写全路径#
   expect {
           "yes/no" { send "yes\r";exp_continue }
            "password:" { send "$password\r" }
          }
   expect eof

EOF
fi
}&
done
wait
echo "fininsh.."

原文地址:https://blog.51cto.com/5776643/2371227

时间: 2024-10-30 11:02:44

shell 脚本交互模式expect批量上传ssh密钥的相关文章

批量上传SSH公钥

批量上传SSH公钥                                                  一世浮沉 首先需要安装python yum install python -y 编写一个python脚本 如下: #vi ssh.py #!/usr/bin/python import sys import pexpect ip = sys.argv[1] password = sys.argv[2] expect_list = ['(yes/no)', 'password:']

shell脚本交互:expect学习笔记及实例详解

最近项目需求,需要写一些shell脚本交互,管道不够用时,expect可以很好的实现脚本之间交互,搜索资料,发现网上好多文章都是转载的,觉得这篇文章还不错,所以简单修改之后拿过来和大家分享一下~ 1. expect是spawn: 后面加上需要执行的shell命令,比如说spawn sudo touch testfile 1.3 expect: 只有spawn执行的命令结果才会被expect捕捉到,因为spawn会启动一个进程,只有这个进程的相关信息才会被捕捉到,主要包括:标准输入的提示信息,Li

shell脚本:日志切割与上传

脚本说明: 日志切割与上传类脚本的功能:脚本自身的运行日志记录与清理.日志切割与打包.ftp上传.传送失败自动重传.断电自动补传.清理超期旧打包等 -------------------- #!/bin/bash # Cut and upload aclog log # by colin # revision on 2016-06-15 ######################################## # 功能说明:该脚本运用于上传aclog日志 # # 使用说明: #+ ./a

批量上传公钥到linux服务器

一直以来,都通过ssh-copy-id在手动上传公钥,想着如果有上千台服务器需要上传公钥的话,这个方法就行了.试着实现下批量上传公钥到服务器,介绍本人试的一个方法. 1: 先通过python脚本来试一台机器,python脚本如下: #!/usr/bin/python   import sys  import pexpect   ip = sys.argv[1] password = sys.argv[2] expect_list = ['(yes/no)', 'password:']   p =

Shell脚本交互之:自动输入密码

Shell脚本交互之:自动输入密码 2016年04月09日 19:41:26 zhangjikuan 阅读数:58208 标签: Shell交互自动输入密码expect重定向管道 更多 个人分类: ARM/linux 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zhangjikuan/article/details/51105166 平时在控制台输入指令如:sudo.ssh.ftp或者修改admin权限的文件时候都会要求输入password,

WEB版一次选择多个文件进行批量上传(Plupload)的解决方案

WEB版一次选择多个文件进行批量上传(Plupload)的解决方案 转载自http://www.cnblogs.com/chillsrc/archive/2013/01/30/2883648.html 说明:Plupload支持多种浏览器,多种上传方式! 一般的WEB方式文件上传只能使用FileUpload控件进行一个文件一个文件的进行上传,就算是批量上传,也要把文件一个一个的添加到页面,无法如 windows程序一样,一次选择多个文件进行批量上传.这样在某些应用上就显得很不人性化,有时候客户希

Android网络编程之使用HttpClient批量上传文件

请尊重他人的劳动成果,转载请注明出处:Android网络编程之使用HttpClient批量上传文件 我曾在<Android网络编程之使用HTTP访问网络资源>一文中介绍过HttpCient的使用,这里就不在累述了,感兴趣的朋友可以去看一下.在这里主要介绍如何通过HttpClient实现文件上传. 1.预备知识: 在HttpCient4.3之前上传文件主要使用MultipartEntity这个类,但现在这个类已经不在推荐使用了.随之替代它的类是MultipartEntityBuilder. 下面

简单项目之批量上传

之前做一小项目中需要批量上传功能,以前都是用的网上现成的Uploadify.WebUpload等插件,心想既然是小项目还是不用插件,所以不如自己写一个(非插件). 1.页面 批量上传页面 1 <form action="" id="formid"> 2 @Html.Hidden("filelist") 3 <table> 4 <tr> 5 <td> 6 文件: 7 </td> 8 <

用Azure CLI批量上传文件

在Windows环境下,我们可以使用AzCopy批量上传文件.其效率和传输速率都是非常快的. 在Linux或MacOS环境下,可以使用Azure的CLI实现批量文件的上传. 下面的脚本可以实现此功能. #!/bin/bash container=hwc btype=block storageaccount=hwtest storagekey=pBHrx8d+LDAkyHm2ffljPYygsiSBlbdQh8O45iV12BlFvdjI8kXbqtE17PlpCG0pfTU3yaBQUEEuWu