【发布时间】: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'])您的具体问题是什么?