expect脚本实现自动化操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/localhostcom/article/details/87913637

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

展开阅读全文

没有更多推荐了,返回首页