複数シェルシェルスクリプトをリモートシェルの標準入力にパイプで接続する方法はありますか?fabric?あるいは、私はいつもリモートファイルシステムに書き込んでから、それを実行してから削除する必要がありますか?私は一時ファイルを避けるので、stdinに送信するのが好きです。ファブリックAPIがない場合(私の研究に基づいていないように思われる)、恐らくssh
モジュールを直接使うことができます。基本的には、fabric.api.run
はコマンドライン引数としてシェルに渡される1行のコマンドに限定されず、代わりに完全な複数行のスクリプトをとり、リモートシェルの標準入力に書き込むことを願っています。スクリプトソースcoudeは、ローカルファイルシステム上のファイルから来ないだろうのpythonの場合を除き、それだけで複数行の文字列になりファブリックとパイプスクリプトのテキストをシェルの標準入力に使用してシェルスクリプトを実行する
ssh somehost /bin/sh < /tmp/test.sh
:私は、このコマンドラインの生地と同等にしたい明確にする
メモリ。これは単一の論理操作であり、リモート側には一時ファイルが存在しないため、予期しない障害が発生し、クラッシュしても孤立したファイルが残らないことに注意してください。ファブリックにこのようなオプションがある場合(これは私が尋ねるものです)、どちらの側にも一時ファイルを入れる必要はなく、これは単一のssh操作しか必要としません。
はちょうど 'ラン(「Command1を&& command2の&& command2の」のような何かをしないのはなぜ:あなたはここで私が得る出力だ独立した線や
&&
のようなだけで配管作業を分離するためにセミコロンを使用することができます')? – Tshepang
A)は読みやすく、書いているか、またはシェルイン・パイソンコードとして維持していないため、B)&&はコードフローをあなたが望むかもしれないし望ましくない方法で影響を与えます。C)世界はすでに既存のシェルスクリプトを1つの行に変換せずにファブリック経由で実行したい –