SSH経由でSolaris FIFOパイプに直接書き込む方法は?

SSH経由でSolaris FIFOパイプに直接書き込む方法は?

入力と出力がFIFOパイプ(fifo_in、fifo_out)にリダイレクトされるプロセスを実行するSolarisサーバーがあります。

SSHを介してこれら2つのパイプにどのように接続できますか?

私はsshを介してfifo_inパイプに書き込むことができ、Solarisプロセスにパイプを介して受け取ったコマンドを実行させ、そしてもちろんfifo_outを介してプロセスの出力を受け取ることを望みます。

SSHまたはFTPを介してSolarisサーバーに接続できます。 netcatがインストールされているかどうかはわかりませんが、オンラインで読んだ内容ではそうではありません。

編集:私はSolarisプロセスからデータを解析できるように、Python(クライアント側)を介してこれらすべてを実行したいと思います。

ベストアンサー1

PythonがIOerrorを生成するため、sshを介して直接unixパイプを開くことができないことがわかりました。少し議論の末、私は次のことをすることにしました。私はPython / Paramikoを使用してSSH経由でSolarisサーバーで次のコマンドを実行しています。

mkfifo input
sleep 10800 > input & 

これにより入力パイプが作成され、「スリープ」を使用するとパイプが開いたままになります(10800は秒単位で3時間)。スリープを使用しない場合、パイプに最初にバッチコマンドを渡した後、パイプは閉じられます。

SSH経由で送信してプロセスを実行します。

nohup process_name < input > output.txt &

これでプロセスが開始され、入力パイプを標準入力に接続し、出力を単純なテキストファイルoutput.txtに追加します。 SSH セッションを切断すると、nohup はプロセスがアクティブであることを確認します。

注:もともとは、出力に出力パイプを使用する予定でしたが、SSHを介してパイプを開くことができないことがわかったため、パイプを使用しても利点はありません。私はまだ入力にパイプを使用しています。なぜなら、これは私が送信するコマンドを私のプロセスが引き続き受け入れることができるからです。

出力はoutput.txtから簡単に読み取ることができますが、入力の場合は各コマンドのバッチ(プロセスが実行したい)を送信します。まず、Pythonスクリプトはredir.txtという名前の新しいコマンドバッチを使用してテキストファイルを生成し、テキストファイルの内容をパイプに送信します。

cat redir.txt > input

これは最初にコマンドを入力パイプにリダイレクトし、次にプロセスがパイプからコマンドを読み取ります。

おすすめ記事