リモートコマンドを実行するためのインターフェイスとして名前付きパイプ(FIFO)を使用するのは良い考えですか?

リモートコマンドを実行するためのインターフェイスとして名前付きパイプ(FIFO)を使用するのは良い考えですか?

コンテキスト:テキストエディタを介してリモートコンピュータにコマンドを実行したいです。

「リモートコマンドの実行」とは、仮想マシン、SSHサーバー、コンテナ、TCP経由のシェル、シェルを持つすべてのリモートマシンなど、どこかでシェルコマンドを実行することを意味します。

私が言う「インターフェース」は、ユーザーに詳細を隠す目標です。ユーザーはどこかにコマンドを書き、その出力をどこかで読みます。

私は次のように構成するつもりです。

mkfifo /tmp/f
mkfifo /tmp/g

while true; do
    cat /tmp/f | ssh -J srv1 srv2 /bin/sh >/tmp/g

    echo ping
done

ユーザーはコマンドを送信し、/tmp/fコマンドの出力を読み取ります/tmp/g

効果がありますが、本当に良い解決策ですか?これは伝統的にどのように解決されていますか?

全体的に、私はそれがかなり良いと思います:

  • 汚れたタスク(タイムアウト、ロギング、ポリシーの再起動、設定)が何らかの形で処理されるとします。

  • インターフェイスがより複雑になる必要はありません。 stdout / stderrの違い、エラーメッセージ、生成/破棄要求などを含めたくありません。

ベストアンサー1

おすすめ記事