Cer*_*rin 12 python django ssh
我正在尝试编写一个简单的单行脚本来ssh到远程主机,CD到我的Django应用程序的目录,然后运行manage.py shell
.到目前为止,我有:
ssh -i mysite.pem root@remotehost "cd /usr/local/myapp; /bin/bash -i -c \"python manage.py shell;\""
Run Code Online (Sandbox Code Playgroud)
这似乎与我的命令中看不到任何输出的警告有关.我只看到:
Python 2.6.4 (r264:75706, Jun 4 2010, 18:20:16)
[GCC 4.4.4 20100503 (Red Hat 4.4.4-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
Run Code Online (Sandbox Code Playgroud)
然后我给出了任何输入,但是当我按下回车时,我似乎没有看到任何来自stdout的内容.但是,如果我输入语法无效的Python,我确实会看到来自stderr的Python回溯.
我还缺少什么?
Del*_*ani 17
将-t
选项传递给ssh
.
强制伪tty分配.这可以用于在远程机器上执行任意基于屏幕的程序,这可以是非常有用的,例如在实现菜单服务时.多个-t选项强制tty分配,即使ssh没有本地tty.
默认情况下,运行ssh host command
不会分配正确的伪tty,这使得任何使用终端转义例程的程序(如行编辑解释程序等)都会失败.
因此,您的单行可以是:
ssh -t -i mysite.pem root@remotehost python /usr/local/myapp/manage.py shell
Run Code Online (Sandbox Code Playgroud)
有可能,但不需要像你那样包装另一层bash.请记住,ssh host command
实际上传递command
一个字符串到用户的默认外壳(这就是为什么你可以做具体的壳之类的东西cd
),所以我不能想出一个理由,为什么你需要运行bash
中bash
.
归档时间: |
|
查看次数: |
1884 次 |
最近记录: |