expect脚本实现自动化操作

1.expect环境搭建

expect是一个免费的编程语言工具,用来实现自动和交互式任务进行通信,而无需人的干预。

环境的安装和一些简单的例子可以参看:Shell脚本学习之expect命令

运行环境:ubuntu16

2.例子

始于懒,才想法设法的做一些自动化的操作,把日常的重复性动作改造成越来越简单的动作,比如远程拷贝文件,ssh登录等。

2.1 自动scp

#    FileName       :    autoScp.sh
#    Description    :    自动远程拷贝文件
#    Editor         :    Donkey
#    Data           :    2019-2-25
#!/usr/expect/bin/expect 
set ssh_user    "root"                  #ssh用户名
set ssh_passwd  "xxxxxxxx"              #ssh密码
set srcpath     "bin/xxxxx"           #拷贝的文件
set dstpath     "/data/xxxx/bin"        #拷贝到指定路径
#set dst_ip     "192.168.1.x"           #固定
set dst_ip      [lrange $argv 0 0]      #通过命令行的参数获取ip
spawn scp $srcpath $ssh_user@$dst_ip:$dstpath    #启动新进场,后跟执行指令
set timeout 10                          #设置超时时间
expect {
        -timeout 10
        "yes/no"        {exp_send "yes\r";exp_continue}          #初次登录需要输入yes确认
        "password:"     {exp_send "passwordxxx\r"}               #自动输入密码
        timeout {puts "expect was timeout by ubuntu.";return}    #超时退出
}
expect eof
exit

Result

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值