我必须在远程python进程上运行python代码。
通常,我会做的是:
ssh admin @ localhost -p 61234
这将打开一个交互式python控制台,我可以直接执行python代码。
>>> print('3')
3
>>>
但是我想使它自动化,并将python代码作为参数传递给ssh。
我尝试了以下选项:
ssh admin @ localhost -v -p 61234 python logs.py
ssh admin @ localhost -v -p 61234 nohup python logs.py
ssh admin @ localhost -p 61234
cat logs.py | ssh admin @ localhost -p 61234 python-
但是所有选项都会出现以下错误:
shell请求在通道0上失败
logs.py :
#!/usr/bin/env python
# tried with and without first line.
print('3')
netstat -anp | grep 61234
tcp 0 0 127.0.0.1:61234 0.0.0.0:* LISTEN 6/python2.7
有没有办法做到这一点?
答案 0 :(得分:0)
可以肯定这是矫kill过正,但是谁知道呢,也许将来您不仅需要简单的命令。
Paramiko包是您要寻找的。该项目充满了演示的 full ,这些演示以许多不同的方式演示了如何。
您会发现最有用的功能是paramiko.client.SSHClient.exec_command
在SSH服务器上执行命令。新频道打开, 请求的命令已执行。命令的输入和输出流 以代表stdin,stdout, 和stderr。
Demos Folder
In-depth Testing
Interactive.py是完全交互式的TTY(远程终端控制功能)。
答案 1 :(得分:0)
PyCharm Professional Edition(来自JetBrains的Python IDE)具有用于远程开发的工具,包括SSH远程处理以及运行远程解释器的能力: