首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何通过ssh直接写入Solaris FIFO管道?

如何通过ssh直接写入Solaris FIFO管道?
EN

Unix & Linux用户
提问于 2018-11-10 00:00:11
回答 1查看 389关注 0票数 2

我有一个Solaris服务器运行一个进程,它的输入和输出被重定向到FIFO管道(fifo_in,fifo_out)。

如何通过ssh连接这两条管道?

我希望能够通过ssh向fifo_in管道写入,让Solaris进程执行它通过管道接收的命令,然后通过fifo_out接收进程的输出。

我可以通过ssh或ftp连接到Solaris服务器。不确定它是否安装了netcat,但据我在网上所读到的,这似乎不太可能。

编辑:我想通过python (在客户机上)完成所有这些工作,这样我就可以解析来自Solaris进程的数据。

EN

回答 1

Unix & Linux用户

发布于 2018-11-15 16:31:53

事实证明,由于Python抛出了一个IOerror,所以不能在ssh上直接打开unix管道。经过一番争吵后,我的结果如下。使用Python/Paramiko,我在Solaris服务器上运行这些命令(通过SSH):

代码语言:javascript
复制
mkfifo input
sleep 10800 > input & 

这将创建输入管道,“睡眠”确保管道保持打开(10800为3小时(秒数))。如果不使用睡眠,则在第一次向其传递一批命令后,管道将关闭。

我通过ssh发送它来运行我的进程:

代码语言:javascript
复制
nohup process_name < input > output.txt &

这将启动进程,将输入管道附加到它的stdin,并将其输出到一个简单的文本文件output.txt。如果断开ssh会话,nohup将确保进程保持活动状态。

注意:我最初也打算使用输出管道,但是由于我不能通过SSH打开管道,所以使用管道没有好处。我仍然使用管道作为输入,因为这样可以确保我的进程在发送命令时继续接受命令。

输出很容易从output.txt中读取,但是对于输入,我发送每一批命令(我希望进程执行这些命令)。首先,Python脚本使用名为redir.txt的新批命令创建一个文本文件,然后将该文本文件的内容发送到管道中:

代码语言:javascript
复制
cat redir.txt > input

这首先将命令重定向到输入管道,然后进程从管道读取命令。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/480870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档