文档章节

usr/bin/expect方式免密码登录和发送文件脚本

林小宝
 林小宝
发布于 2017/09/08 13:51
字数 183
阅读 10
收藏 0
点赞 0
评论 0

ssh 登录

#!/usr/bin/expect  
set timeout 20  
  
if { [llength $argv] < 3} {  
    puts "Usage:"  
    puts "remote_host password cmd"  
    exit 1  
}  
  
set remote_host [lindex $argv 0]  
set password [lindex $argv 1]  
set cmd [lindex $argv 2]
  
set passwderror 0  
  
spawn ssh $remote_host  
  
expect {  
    "*assword:*" {  
        if { $passwderror == 1 } {  
        	puts "password is error"  
        	exit 2  
        }  
        set timeout 1000  
        set passwderror 1  
        send "$password\r"  
        exp_continue  
    }  
    "*es/no)?*" {  
        send "yes\r"  
        exp_continue  
    }  
    timeout {  
        puts "connect is timeout"  
        exit 3  
    }  
}

expect  "$*" { send "$cmd\r" }
send "exit\r"
expect eof

scp

#!/usr/bin/expect  
set timeout 20  
  
if { [llength $argv] < 3} {  
    puts "Usage:"  
    puts "$argv0 local_file remote_path password"  
    exit 1  
}  
  
set local_file [lindex $argv 0]  
set remote_path [lindex $argv 1]  
set password [lindex $argv 2]
  
set passwderror 0  
  
spawn scp $local_file $remote_path  
  
expect {  
    "*assword:*" {  
        if { $passwderror == 1 } {  
        puts "password is error"  
        exit 2  
        }  
        set timeout 1000  
        set passwderror 1  
        send "$password\r"  
        exp_continue  
    }  
    "*es/no)?*" {  
        send "yes\r"  
        exp_continue  
    }  
    timeout {  
        puts "connect is timeout"  
        exit 3  
    }  
}

© 著作权归作者所有

共有 人打赏支持
林小宝
粉丝 4
博文 25
码字总数 10496
作品 2
深圳
项目经理
MacBook Pro 下 Alias + ssh免密登录 =>形成脚本提高效率

① MacBook Pro 下Bash Shell and Zsh 利用Alias 简化命令 ------ 直接上菜 ② MacBook Pro 下Bash Shell 实现ssh免密登录 可以看到两个密钥文件:idrsa(私钥) idrsa.pub(公钥) 公钥是加...

杨春炼 ⋅ 2016/05/25 ⋅ 4

linux 远程自动化部署

#!/usr/bin/expect -f set timeout 60set f [open ./ip r]while { [gets $f line ] >=0 } { set ip [lindex $line 0] #echo "开始启动$ip的服务" spawn scp push.war jeeker@$ip:/home/jeeke......

kongjun ⋅ 2016/01/08 ⋅ 2

expect使用详解

linux expect的使用详解 一、概述   我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如tel...

临峰不畏 ⋅ 2015/10/31 ⋅ 0

企业实战脚本案例3:批量管理自动化运维100台小规模服务器

批量管理自动化运维100台小规模服务器 目录 1.脚本背景介绍 2.脚本技术需求分析 2.1 SSH免登陆认证 2.2 Expect实现key分发 2.2 PSSH家族命令详解 3.脚本功能及实现过程 3.1 脚本运行环境介绍...

心的哲学 ⋅ 2017/09/10 ⋅ 0

expect实现命令行简单交互

在服务器开发中,有时候需要自动同步另一个服务器的一个文件,这时候就需要通过scp来把文件复制到当前服务器目录下,如: scp需要认证用户名和密码,可以通过在对方服务器通过密钥对来验证不...

lxfeng ⋅ 2016/06/05 ⋅ 0

图文教程自动登录expect脚本实例

简介: 1.expect的讲解 2.实例操作自动登录脚本 expect讲解 expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令。当然若是使用不带密码的密钥验证同样可以实现自动登录和自...

lizheng103 ⋅ 2016/12/28 ⋅ 0

Linux交互命令工具expect与自动切换登录用户

linux expect 安装Expect是在Tcl基础上创建起来的,它还提供了一些Tcl所没有的命令,它可以用来做一些linux下无法做到交互的一些命令操作,在远程管 理方面发挥很大的作用。 安装完毕以后,进...

YuanyuanL ⋅ 2016/12/07 ⋅ 0

Expect 自动化交互应用实例解析

expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。 expect自动交互流程: spawn启动指定进程---expect获取指定关键字---send向指...

super李导 ⋅ 2017/06/01 ⋅ 0

搭建一个高可用负载均衡的集群架构(第一部分)

笔记内容:使用15台机器搭建一个高可用负载均衡的集群架构(第一部分) 笔记日期:2017.12.14 —— 2017.12.16 业务需求 用15台虚拟机搭建一个高可用负载均衡集群架构出来,并运行三个站点,...

ZeroOne01 ⋅ 2017/12/20 ⋅ 0

expect spawn、linux expect 用法小记

使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄、收藏。可是为什么要这么写却不知其然。本文用一个最短的例子说明脚本的原理。  脚本代码如下:...

双叶天下 ⋅ 2014/02/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

说说javascript中的那些专业名词

DOM(Document Object Model) 文档对象模型 BOM(Browser Object Model) 浏览器对象模型 ECMA(European Computer Manufacturer's Association) 欧洲计算机制造商协会 W3C(World Wide Web Conso......

hang1989 ⋅ 30分钟前 ⋅ 0

Bootstrap Wizard 多步表单控件

废话 有一块需求是 有多步表单 点击下一步时触发验证一个范围内的表单,点击上一步或取消,清空表单并返回第一步,点击最后一步提交整个表单的 就找到了这个插件,本来自己写了一个原生的 fo...

无极之岚 ⋅ 45分钟前 ⋅ 0

如何利用Spring Cloud构建起自我修复型分布式系统

利用Netflix所打造的组件及各类大家熟知的工具,我们完全可以顺利应对由微服务以及分布式计算所带来的技术挑战。 在过去一年当中,微服务已经成为软件架构领域一个炙手可热的新名词,而且我们...

harries ⋅ 今天 ⋅ 0

临近实习前的感想

再过两星期就要开始新的一段实习了,想想去年的这个时候也在实习,心中不免思绪万千,也一直想写对2017做个总结,但一直迟迟没有下笔。 2017年的春节,我就开始准备开学后找份实习。那时候就...

无精疯 ⋅ 今天 ⋅ 0

Spring AOP(面向切面编程)

Spring AOP概念: Spring AOP 可以劫持一个执行的方法,在方法执行之前或之后添加额外的功能。通常情况下,AOP把项目中需要在多处用到的功能,比如日志、安全和事物等集中到一个类中处理,而...

霍淇滨 ⋅ 今天 ⋅ 0

人工智能、机器学习、数据挖掘以及数据分析有什么联系?

人工智能是目前炙手可热的一个领域,所有的互联网公司以及各路大迦们纷纷表态人工智能将是下一个时代的革命性技术,可与互联网、移动互联网时代的变更相媲美;AlphaGo在围棋领域战胜人类最顶...

董黎明 ⋅ 今天 ⋅ 0

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 今天 ⋅ 0

设计模式 之 享元模式

设计模式 之 享元模式 定义 使用共享技术来有效地支持大量细粒度对象的复用 关键点:防止类多次创建,造成内存溢出; 使用享元模式来将内部状态与外部状态进行分离,在循环创建对象的环境下,...

GMarshal ⋅ 今天 ⋅ 0

SpringBoot集成Druid的最简单的小示例

参考网页 https://blog.csdn.net/king_is_everyone/article/details/53098350 建立maven工程 Pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM......

karma123 ⋅ 今天 ⋅ 0

Java虚拟机基本结构的简单记忆

Java堆:一般是放置实例化的对象的地方,堆分新生代和老年代空间,不断未被回收的对象越老,被放入老年代空间。分配最大堆空间:-Xmx 分配初始堆空间:-Xms,分配新生代空间:-Xmn,新生代的大小一...

算法之名 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部