zoukankan      html  css  js  c++  java
  • Linux expect用法介绍

    1.expect是linux中一个交互命令,一般在 /usr/bin/expect路径下,如果该路径未加入到环境中需要先添加,其作用场景常用于交互执行输入指令

    常用命令:
    expect              获取上一命令执行后的返回信息,如果匹配成功 则执行后续操作
    spawn               交互程序开始后面跟命令
    set                 定义变量
    puts                输出变量
    set timeout         设置超时时间
    send               用于发送字符串或者命令
    exit                退出expect脚本
    eof                 expect执行结束 退出
    interact            结束

    2.实例

    需求1描述:在没有ssh密钥认证时,scp远程复制到目标主机需要每次输入密码,这里使用expect免去手动输入密码的操作

    主流程脚本:

    #!/bin/sh
    expect /home/sendUtil.sh 参数1  参数2  参数3  参数4
    远程复制scp脚本:
    #!/usr/bin/expect
    #获取参数并设置局部变量
    set timeout  15
    set BASE_PATH [lindex $argv 0]
    set FILE_NAME [lindex $argv 1]
    set IP [lindex $argv 2]
    set TARGET_PATH [lindex $argv 3]
    #执行scp操作 spawn scp
    -P 16022 ${BASE_PATH}/target/$FILE_NAME user@$IP:$TARGET_PATH #匹配到输入密码提示
    expect
    "*assword*" #发送密码
    send
    "Password " #结束交互
    interact

    需求1描述:在没有ssh密钥认证时,sftp到远程主机,切换到指定目录,并将目录下所有文件下载到本地

    主脚本和上面一样

     sftp脚本:

    #!/usr/bin/expect
    spawn sftp -oPort=16022 sftp@192.168.12.32
    expect "*assword*"
    send "Password
    "
    expect "*sftp*"
    send "cd /user/download
    "
    expect "*sftp*"
    send "get -r *
    "
    interact
  • 相关阅读:
    Spark ListenerBus 和 MetricsSystem 体系分析
    Scala使用JUnit4单元测试
    Error:java: Compilation failed: internal java compiler error
    Spark 2.2 DataFrame的一些算子操作
    Spark SQL中UDF和UDAF
    Scala基础
    Spark Sql的UDF和UDAF函数
    Kafka笔记整理(二):Kafka Java API使用
    Kafka笔记整理(一)
    【口语英语】小学英语1-6年级听力必备知识汇总,建议收藏!
  • 原文地址:https://www.cnblogs.com/jin-nuo/p/13491118.html
Copyright © 2011-2022 走看看