首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用expect运行SSH脚本?

如何使用expect运行SSH脚本?
EN

Stack Overflow用户
提问于 2019-04-15 23:19:00
回答 1查看 145关注 0票数 0

我可以使用expect在远程SSH主机上执行命令。一切都很好,只要我把自己限制在一行硬编码的command.However上,我想创建一个本地命令的脚本来远程执行。

这个命令可以工作,但只能使用一行命令:

代码语言:javascript
复制
#!/usr/bin/expect

set USER [lindex $argv 0]
set PASSWORD [lindex $argv 1]
set CMD [lindex $argv 2]
set timeout 10

spawn ssh -o StrictHostKeyChecking=no "$USER" "$CMD"

expect {
        timeout {
                puts "Timeout happened"
                exit 8
                }
        eof {
                puts "EOF received"
                exit 4
                }
        -nocase "password:" {
                send "$PASSWORD\n"
                expect {
                        "keys" {
                        exit 200
                                }
                        -nocase "password:" {
                                        exit 1
                                        }
                        }
                }
}

这个不起作用:

代码语言:javascript
复制
#!/usr/bin/expect

set USER [lindex $argv 0]
set PASSWORD [lindex $argv 1]
set timeout 10

spawn ssh -o StrictHostKeyChecking=no "$USER" < /var/myscript.sh
#                           This don't work! ^^^^^^^^^^^^^^^^^^^

expect {
        timeout {
                puts "Timeout happened"
                exit 8
                }
        eof {
                puts "EOF received"
                exit 4
                }
        -nocase "password:" {
                send "$PASSWORD\n"
                expect {
                        "keys" {
                        exit 200
                                }
                        -nocase "password:" {
                                        exit 1
                                        }
                        }
                }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-16 00:01:14

<是外壳语法,所以你可以这样做:

代码语言:javascript
复制
spawn bash -c "ssh -o StrictHostKeyChecking=no $USER < /var/myscript.sh"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55692372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档