文档章节

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

林小宝
 林小宝
发布于 2017/09/08 13:51
字数 183
阅读 10
收藏 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
博文 27
码字总数 10798
作品 2
深圳
MacBook Pro 下 Alias + ssh免密登录 =>形成脚本提高效率

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

杨春炼
2016/05/25
743
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
698
2
企业实战脚本案例3:批量管理自动化运维100台小规模服务器

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

心的哲学
07/02
0
0
expect实现命令行简单交互

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

lxfeng
2016/06/05
61
0
自动化交互程序Expect应用实践

Expect自动化交互程序应用实践 1.Expect简介 1.1什么是Expect Expect第一个用来实现自动化交互功能的软件套件,是基于TCL的脚本编程工具语言,方便学习,功能强大。 1.2为什么要使用Expect ...

tom_tuwei
07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

day60-20180818-流利阅读笔记-待学习

钉钉:工作的归工作,生活的…也归工作? 毛西 2018-08-18 1.今日导读 你用过“钉钉”么?被公司要求使用钉钉的感受是如何的呢?这款阿里巴巴旗下的移动办公社交平台在弯道超车微信、为许多企...

aibinxiao
43分钟前
6
0
Kubernetes的HTTPS和证书问题,汇总

通过Kubernetes建立服务网站,需要干的事情和HTTPS和证书问题,汇总如下: 建立Nginx服务器 搞服务器第一步,Ubuntu 18.04设置静态IP 安装Nginx服务。 Kubernetes的deployment使用 创建服务,...

openthings
59分钟前
2
0
php 使用redis锁限制并发访问类

1.并发访问限制问题 对于一些需要限制同一个用户并发访问的场景,如果用户并发请求多次,而服务器处理没有加锁限制,用户则可以多次请求成功。 例如换领优惠券,如果用户同一时间并发提交换领...

豆花饭烧土豆
今天
0
0
Linux环境搭建 | 手把手教你配置Linux虚拟机

在上一节 「手把你教你安装Linux虚拟机」 里,我们已经安装好了Linux虚拟机,在这一节里,我们将配置安装好的Linux虚拟机,使其达到可以开发的程度。 Ubuntu刚安装完毕之后,还无法进行开发,...

良许Linux
今天
0
0
(三)Nginx配置·续

概述 前文写了关于Nginx环境配置,但是还没有完,接下来将会继续讲三个相关的配置 主要是以下三个 1.Nginx访问日志 2.Nginx日志切割 3.静态文件不记录日志和过期时间 Nginx访问日志 1.先看看...

杉下
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部