2016-10-14 14 views
1

Mac端末で発行された次のコマンドは、リモートシェルのdockerコマンドに失敗しています。ローカルマシンからのリモートサーバー上のシェルコマンドの発行

しかし、私はサーバにログインし、そこにコマンドを発行すると ";" "& &" と

ssh -i "myKey.pem" [email protected] ‘docker stop $(docker ps -a -q --filter ancestor=name/kind); docker rm $(docker ps -a -q --filter ancestor=name/kind); docker rmi name/kind; docker build -t name/kind .; sudo docker run -it -d -p 80:80 name/kind’ 

はドッカーデーモンに接続できません。ドッカーデーモンはこのホストで動作していますか?

私はこのコマンドをローカルターミナルから実行する必要があります。これは、最初にプロジェクトをローカルに構築し、サーバーにscpという大きいコマンドの一部であるためです。
`$より大きいコマンド& &上記のようにsshを表示します。

どうすればよいですか?ありがとう

+0

あなたの問題とは無関係かもしれませんが、コマンドを 'ssh'に渡すのに使用する引用符は疑わしくなります。通常の一重引用符' ''を使用してください。 – oliv

+0

コマンドを引用しないで '$'と ';'文字をエスケープしようとしましたか? –

答えて

0

非常に複雑なコマンドをsshに渡す最善の方法は、サーバー側のスクリプトを作成することです。あなたのリモートホストへ

  • ローカルホスト上の.shファイル
  • scpを作成することが
  • 実行 `sshのユーザー@ remotehostの「のbashスクリプトファイル:

    あなたには、いくつかのパラメータを渡す必要がある場合は、この方法を進めます.sh '

これは、エスケープメントについての頭痛を与えずにトリックを行う必要があります。

+0

この場合、ファイルには何が含まれていますか。申し訳ありませんが、私はbashファイルに慣れていません。 –

関連する問題