Cha*_*Kut 5 twisted twisted.conch
简介:无法将命令自动化到Twisted的检修孔.寻求解决方案/建议.
Twisted有一个很棒的功能叫做沙井.它允许用户ssh到当前运行的Twisted服务器并检查/与其内部交互.
我想用这个做一些脚本.连接到沙井只需要
ssh localhost -p 12345
Run Code Online (Sandbox Code Playgroud)
然后将用户放入可以访问正在运行的进程的Python解释器中.
通常使用ssh,可以在远程服务器上运行命令并退出,例如
ssh foo@bar.com 'ls'
Run Code Online (Sandbox Code Playgroud)
将在登录目录上执行'ls',然后ssh连接将关闭.
我想表现得像
ssh localhost -p 12345 'print "hello, world"'
Run Code Online (Sandbox Code Playgroud)
沙井,但我收到(用ssh详细):
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
debug1: Sending command: print "Hello world"
exec request failed on channel 0
Run Code Online (Sandbox Code Playgroud)
无论如何,我可以在沙井上自动化操作?
失败的原因ssh localhost -p 12345 print 'Hello world'是“print 'Hello world'”作为“exec”请求发送,该请求应该执行命令。您的服务器(沙井)不支持(显然)。
您需要提供 python 解释器标准输入。例如:
ssh -tt localhost -p 12345 << EOS
print "Hello world"
EOS
Run Code Online (Sandbox Code Playgroud)
注意 -tt 标志 - 它强制 ssh 分配 tty,无论您的输入设备不是 tty。如果没有 -tt,您将收到“频道上的 shell 请求失败”错误。
| 归档时间: |
|
| 查看次数: |
288 次 |
| 最近记录: |