SSH経由でコマンドを実行するときに「あいまいなリダイレクト」を防ぐ方法

SSH経由でコマンドを実行するときに「あいまいなリダイレクト」を防ぐ方法

SSHを介してリモートサーバーでスクリプトを実行しようとしています。

コマンドはバックグラウンドに移動し、ログアウト後も引き続き実行する必要があります。コマンドの結果は、リモートサイトのout.logにリダイレクトする必要があります。

SSHプロセスはコマンドを待たずに終了する必要があります。

リモートシェルはcshです。

私は次の行(引用符、中括弧...)のさまざまなバージョンを試しました。

ssh target.host "nohup csh longrunning.sh > out.log 2>&1 &; exit"

私の試みは、リモートサイトで何もしないか、複数のアンパサンドが原因であいまいなリダイレクトを引き起こします。

リモートサイトは、screen同様のツールがインストールされていない最小のFreeBSDシステムです。

ベストアンサー1

ただ探しているのではないですか?

ssh target.host "nohup csh longrunning.sh >& out.log &; exit"

これは達成したいcshの正しい構文のようです。

使用している構文はBourneシェルと互換性がないため、cshと互換性がありません。

おすすめ記事