【问题标题】:Is this possible in one SSH session? (BASH & PYTHON) [closed]这可能在一个 SSH 会话中实现吗? (BASH 和 PYTHON)[关闭]
【发布时间】:2016-03-12 18:54:15
【问题描述】:

我正在编写一个 python 脚本(在 Linux 机器上),它将执行 SSH 并在远程机器(Sun-OS)上运行一串命令。我无法让远程命令运行并给出预期的输出,我不确定这是否可能。

根据我使用的语法,有时我会得到:“ksh: 28317 Segmentation Fault(coredump)”

如果这是不可能的,但它在 python 或 CLI 中使用了不同的方法,请告诉我。

谢谢!

ssh user@remote_machine "/dvs/dncs/bin/tellDhct -h mempoll/mempoll_lowmem_ips.out | awk '{print $1}' > mempoll/mempoll.macs && /dvs/dncs/bin/tellDhct -h mempoll/mempoll_nonresp_ips.out | awk '{print $1}' >> mempoll/mempoll.macs"

【问题讨论】:

  • 你能在远程机器上按 ksh 提示符运行那个巨大的命令吗?
  • @serge 是的..没有问题。
  • 该命令似乎由两个与&& 链接的命令组成。你能通过ssh单独执行这些命令,有或没有最终重定向到文件(> mempoll/mempoll.macs>> mempoll/mempoll.macs)(分而治之探索性方法......)
  • @ serge.. 实际上,即使没有重定向,我什至没有在本地终端(我正在 SSH 连接的机器)上获得第一个命令的输出。当我使用重定向时,它会创建文件,但它是空的。当我直接 ssh 进入远程机器时它可以工作。不知道为什么会这样,但看起来我需要开始往后看。
  • 是的,这是可能的。像任何其他程序一样运行ssh,例如subprocess.check_call(['ssh', 'localhost', 'date +%Y | grep -o 20'])您的具体问题是什么?

标签: python linux bash ssh


【解决方案1】:

试试这样的:

ssh user@remote << EOT
echo "test"
echo "you can put here anything like in a bash script"
echo "and it should work"
EOT

【讨论】:

    猜你喜欢
    • 2017-01-28
    • 2016-01-06
    • 1970-01-01
    • 2016-01-06
    • 2012-10-11
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多