shellScript для выполнения команды в новой оболочке из SSHing - PullRequest
1 голос
/ 13 июля 2020

Я использую две нижеуказанные команды для подключения к удаленному хосту виртуальной машины и доступа к docker bash.

ssh -i ~/.ssh/rsa opc@100.111.99.164
sudo docker exec -it MT bash

Сначала я запускаю ssh -i ~/.ssh/rsa opc@100.111.99.164, который в ответ подключается к указанной машине и затем я запускаю sudo docker exec -it MT bash внутри терминала этой новой машины. Все это я делаю вручную, и есть различные такие экземпляры, к которым я использую для подключения за день. Я хочу написать сценарий, который автоматизирует этот процесс. Но проблема в том, что когда я записываю вышеупомянутые команды в файл. sh и запускаю его, вторая команда, например, sudo docker exec -it MT bash, не выполняется, и этого также ожидается, потому что сценарий не работает в терминале машины ( 100.111.99.164), к которому я подключен.

Я был бы очень признателен, если бы кто-нибудь мог предложить решение.

1 Ответ

0 голосов
/ 13 июля 2020

Вы можете передать команду docker exec команде s sh.

ssh -i ~/.ssh/rsa -tt opc@100.111.99.164 "sudo su - root -c 'docker exec -it MT bash'"  

или, если вы хотите запустить команду в контейнере, вы можете передать команду контейнеру


ssh -i ~/.ssh/rsa -tt opc@100.111.99.164 "sudo su - root -c 'docker exec -it MT bash  -c \"echo hello from cotainer\"'"  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...