2015-08-18 3 views
-1

В соответствии с документацией (https://codeship.com/documentation/continuous-deployment/deployment-with-ftp-sftp-scp/#run-commands-on-a-remote-server-via-ssh) вам необходимо выполнить все команды в виде одной команды.Кодирование команд ssh

Хотя я понимаю, что я не понимаю, как я могу запустить следующее как одной команды, то процесс будет:

  1. SSH [email protected]
  2. пользователь SSH @ тест- сервер
  3. кд развернуть
  4. ./deploy.sh

Не то вторая команда запускается на 111.1.111.101, как demo

Это в настоящее время, что я пробовал:

ssh [email protected] "ssh [email protected]; cd deploy; ./deploy.sh"

Но это, кажется, застревают после первой команды SSH, он никогда не идет на второй SSH.

+0

эй, вы можете объяснить, почему это необходимо для вас есть два слоя SSH? и на какой машине находится скрипт 'deploy/deploy.sh'? – user156213

+0

Это именно то, как настроен наш сервер на данный момент, я не могу это изменить. –

ответ

1
ssh -t [email protected] 'ssh destination "cd deploy; ./deploy.sh"' 
+0

Это прекрасно, работает точно так, как ожидалось. Не знал, что вы можете смешивать одиночные и двойные кавычки. –

1

Как пользователь156213 сказал, вероятно, вам не нужны два прыжка, но в любом случае вы добавляете; после SSH, нарушающего все

С одним прыжком

ssh [email protected] "cd deploy ; ./deploy.sh" 

также можно попытаться удалить первую строку

ssh [email protected] ./deploy/deploy.sh 

Посмотрите на ProxyCommand в SSH, чтобы избежать скачков, отредактируйте .ssh/конфигурации, чтобы включить что-то вроде этого

Host first 
    Hostname 111.1.111.101 
    User demo 

Host second 
    User user 
    ProxyCommand ssh -q first nc test-server 

Теперь с простой

ssh second deploy/deploy.sh 

сделает работу

+0

К сожалению, мне нужны два слоя ssh, я не могу это изменить, поэтому мне нужно выяснить, как это сделать с помощью одной команды. –

+0

С конфигурацией ProxyCommand вы можете выполнять два уровня ssh только в одном, а также позволяет использовать более сложные команды на основе ssh, например rsync или git. Например, rsync -av/tmp/second:/tmp/будет rsync вашего локального/tmp с удаленным, перепрыгивающим через первый прокси-сервер ssh – PerroVerd

+0

Это имеет смысл, но у меня не было много параметров конфигурации над этим сервером, и мне приходилось работайте с простыми командами, которые мне дали. –

 Смежные вопросы

  • Нет связанных вопросов^_^