【问题标题】:Change working directory on remote location更改远程位置的工作目录
【发布时间】:2015-10-23 06:16:58
【问题描述】:

如果有任何方法可以通过使用 subprocess 或 pxssh 模块来更改远程服务器上的当前工作目录,我很感兴趣。这样做的目的是创建新目录,并复制/粘贴文件。此外,了解是否有任何方法可以在一个过程中完成这些事情对我很有用。 执行下面的命令对我没有帮助,因为命令执行完成后进程立即终止。

import subprocess
p=subprocess.Popen(['ssh', '15.27.23.2','cd /home/incoming'], shell=True)
p.wait()

有人知道怎么做吗?不应使用第三方库。 感谢您的帮助。

【问题讨论】:

标签: python subprocess


【解决方案1】:

正如您所观察到的,该程序创建了一个到远程主机的 SSH 连接,并在该主机上运行一个 shell,然后(因为没有其他命令)立即终止。每个进程都有自己的“当前目录”,包括您在远程机器上运行的进程。

显然,一种方法是发送更长的命令字符串,其中包括mkdircd,然后是您要运行的命令。

更好的方法是调查fabric 的使用,它具有允许您在所需上下文中运行任意远程命令的功能。您所面临的具体问题已在 this documentation page 上得到解决,仅此一项就可能向您展示如何使用 mkdir project && cd project && do-something 等命令进行操作。

【讨论】:

  • 我想在 /home/incoming 创建新文件夹,复制/粘贴文件并在该位置执行程序。有没有办法在一个过程中做到这一点?
  • 是的,我知道当我说“没有任何事情发生”时我犯了错误
猜你喜欢
  • 2012-10-24
  • 1970-01-01
  • 2016-05-16
  • 2015-07-03
  • 1970-01-01
  • 2018-02-13
  • 1970-01-01
  • 2014-11-08
  • 1970-01-01
相关资源
最近更新 更多