从本地计算机在远程服务器上发出shell命令

时间:2016-10-14 09:32:48

标签: linux shell

在Mac终端上发出以下命令,导致远程shell上的docker命令失败。

但是,如果我登录到服务器并在那里发出替换“;”的命令,它就可以工作与“&&”

ssh -i "myKey.pem" user@host ‘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’
  

无法连接到Docker守护程序。 docker守护程序是否在此主机上运行?

我需要从本地终端运行此命令,因为if是更大的命令的一部分,首先在本地构建项目并scp它到服务器。
`$ greater-command&&然后最SSH-如示出的,以上。

我该如何解决?感谢

1 个答案:

答案 0 :(得分:0)

将非常复杂的命令传递给ssh的最佳方法是在服务器端创建脚本。

如果您需要传递一些参数,请按以下方式进行:

  • 在您的localhost上创建一个.sh文件
  • scp它到您的远程主机
  • 运行`ssh user @ remotehost' bash scriptfile.sh'

这应该可以解决问题而不会让你头疼擒纵。