Linux expect

一个expect使用的例子程序
[root@dba-server01 tftpboot]# less expect-ssh.exp

//提示用法
proc usage {} {
    puts stderr "usage: $::argv0 username password hostip"
    exit 1
}

proc connect {pass} {
   expect {
       "(yes/no)?" {
           send "yes\n"
           expect "*password:" {
                send "$pass\n"
                expect {
                    "*#" {
                        return 0
                    }
                }
           }
       }
       "*password:" {
           send "$pass\n"
           expect {
               "*#" {
                   return 0
               }
           }
       }
   }
   return 1
}
if {$argc != 3} { usage }

set username [lindex $argv 0]
set password [lindex $argv 1]
set hostip [lindex $argv 2]

spawn ssh ${username}@${hostip}
//这里表示如果连接不成功则返回!
if {![connect $password]} {
    exit 1
}

send "touch /home/oracle/test.txt\n"//注意转移回车的使用,以免和exit指令连在一起.这里是目标机要执行的指令.
send "exit\n"
expect eof
参见http://www.cnblogs.com/super119/archive/2010/12/18/1909977.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值