使用Expect通过ssh远程执行脚本

ssh stdin expect remote-execution

46 观看

1回复

1 作者的声誉

我是新手expect。我尝试下面的代码,但失败了:

expect -c 'spawn ssh user@host < script.ecma3  
expect Password: ;
send "******\r";
send "exit\r";'    

任何人都可以澄清

作者: user1504912 的来源 发布者: 2017 年 3 月 11 日

回应 1


0

77 作者的声誉

这可能对您有帮助

#!/usr/bin/expect
set timeout -1

spawn -noecho bash -c "ssh -t user@host '<here-comes-your-command>'"

expect {
  -re ".*assword.*" {
    exp_send "$env(PASS_WORD)\n"
    exp_continue
  }
}

注意 :-

1)在运行脚本之前,将其复制到远程主机。传递整个脚本不是一件好事。

2)使用expect中的环境变量$env(variable_name)

在上面的示例中$PASS_WORD,我使用了$env(PASS_WORD)

作者: mihir6692 发布者: 2017 年 3 月 15 日
32x32