zoukankan      html  css  js  c++  java
  • centos7 自动交互expect 安装使用

    1.安装

    https://www.cnblogs.com/rocky-AGE-24/p/7256800.html

    安装expect命令 两种方式
    yum安装

    yum -y install expect

    手动安装

    expect以及tcl版本

    复制代码
    #!/bin/bash
    oldpath=`pwd`
    tar -zxf tcl8.4.20-src.tar.gz
    #3.安装配置
    cd tcl8.4.20/unix
    ./configure --prefix=/usr/tcl --enable-shared
    make
    make install
    #注意:
    #1、安装完毕以后,进入tcl源代码的根目录,把子目录unix下面的tclUnixPort.h copy到子录generic中。
    cp ./tclUnixPort.h ../generic/

    #(二)expect 安装 (需Tcl的库)

    #2.解压缩源码包
    cd $oldpath
    tar xzf expect5.45.tar.gz
    #3.安装配置
    cd expect5.45
    ./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.20/generic
    make
    make install
    ln -s /usr/tcl/bin/expect /usr/expect/bin/expect
    ln -s /usr/tcl/bin/expect /usr/bin/expect
    复制代码

    testcase

    复制代码
    #!/bin/bash
    #create hadoop user
    user1=$1
    useradd $user1

    expect -c "
    set timeout -1;
    spawn passwd $user1;
    expect {
    *password:* {send -- hadoop ;exp_continue;}
    eof {exit 0;}
    }"
    # 更改用户组为root
    usermod -g root $user1
    #test comand
    # id $user1

    2.使用

    以拉取远程服务器mysql备份为例  总共2个文件,备份文件自己创建

    vi mysqlbackup.sh 

    #!/bin/sh

    source /etc/profile

    DATE=`date +%Y%m%d`

    mysqlfile=********项目名_${DATE}*.sql.gz

    password=********

    #传递密码和文件名到mysql文件

    ./mysql $password $mysqlfile

    echo "pull mysqlfile end"

    vi mysql

    #!/usr/bin/expect

    set password [lindex $argv 0]
    set mysqlfile [lindex $argv 1]

    #全部拉取
    #spawn scp -r root@ip:/data/mysqlbackup/${BACK_DATA}.sql.gz /home/backup/mysqlbackup
    #拉取指定的文件
    spawn scp -r root@ip:/data/mysqlbackup/$mysqlfile /home/backup/mysqlbackup

    expect {
    "密码:"
    {
    send "$password "
    }
    "password"
    {
    send "$password "
    }
    "yes/no"
    {
    sleep 5
    send_user "send yes"
    send "yes "
    }
    eof
    {
    sleep 5
    send_user "eof "
    }
    }
    set timeout 3000
    send "exit "
    expect eof

    纵有白头俱老意,奈何缘浅路芊芊.
  • 相关阅读:
    java+opencv实现图像灰度化
    java实现高斯平滑
    hdu 3415 单调队列
    POJ 3368 Frequent values 线段树区间合并
    UVA 11795 Mega Man's Mission 状态DP
    UVA 11552 Fewest Flops DP
    UVA 10534 Wavio Sequence DP LIS
    UVA 1424 uvalive 4256 Salesmen 简单DP
    UVA 1099 uvalive 4794 Sharing Chocolate 状态DP
    UVA 1169uvalive 3983 Robotruck 单调队列优化DP
  • 原文地址:https://www.cnblogs.com/hanby/p/15524774.html
Copyright © 2011-2022 走看看