0

我在使用 ip x 的系统上。我想用来自 X 的 ip y ssh 进入系统,使用 x 在 y shell 上做一些工作,然后再次退出到 x .. 使用 python

我在 python 中有以下代码片段,我打算在 x 上运行

if __name__ == "__main__":
    print "inside main of python file"
    command="ssh robert@172.1.1.2"
    output=subprocess.Popen(command, shell =False )

当我运行它时,我希望新的 shell 将在当前 shell 上打开,然后我可以继续使用 172.1.1.2 进行 wrkg .. 但是我发现在 ssh 到 172.1.1.2 完成后我当前的 shell 已损坏。

我想我做错了什么。

4

1 回答 1

1

如果您想通过 ssh 运行 shell 命令,最好使用“fabric”,假设您将创建重复任务的 python+shell 脚本。在任何情况下,您都可以通过 IPython 运行结构任务,获得访问权限并在 IPython 内部执行任何基于 shell 的活动。

但是,如果您想要 Bash/*SH shell 访问,那么最好使用 expect 来执行登录并在远程服务器上为您创建一个 shell。

于 2013-09-01T17:19:54.107 回答