+ -
当前位置:首页 → 问答吧 → scp expect

scp expect

时间:2011-07-25

来源:互联网

本帖最后由 horizonhyg 于 2011-07-25 16:58 编辑

小弟不才,写了个脚本自动用scp抓取文件,不知道哪写错了
  1. #! /usr/bin/expect
  2. set ip [lindex $argv 0]
  3. set uname "mysql"
  4. set password "******"
  5. set slow_log_file_src [lindex $argv 1]
  6. set slow_log_file_dis [lindex $argv 2]
  7. set copy "$uname@$ip:$slow_log_file_src $slow_log_file_dis"

  8. spawn scp "$copy"
  9. set timeout 300
  10. expect "*yes/no*"
  11. send "yes"
  12. expect "*password*"
  13. send "$password"
  14. interact
复制代码
执行报错:


QUOTE:
[mysql@BJ-B28-MYSQL-105 ~]$ ./testexpect ***.**.111.112 /home/mysql/test.log /home/mysql/
spawn scp mysql@***.**.111.112:/home/mysql/test.log /home/mysql/
usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 [...] [[user@]host2:]file2
send: spawn id exp6 not open
    while executing
"send "yes""
    (file "./testexpect" line 12)


是我scp命令写错了么,可是我执行了一遍能拷贝过来。。。

作者: horizonhyg   发布时间: 2011-07-25

没人回答啊,自己顶一下。。。

作者: horizonhyg   发布时间: 2011-07-25

spawn scp  $copy

作者: waker   发布时间: 2011-07-25

expect原来还可以直接用啊,以前都是写在tcl或者shell里,没见过你这种错误提示,
-------菜鸟飘过

作者: cu_little_bird   发布时间: 2011-07-25

回复 waker


    版主,不好使。。。去掉了引号也不行

作者: horizonhyg   发布时间: 2011-07-25

回复 waker


    我把copy去掉了,然后那些把命令直接写在spawn那一行就行了,估计还是引号的问题。

作者: horizonhyg   发布时间: 2011-07-25