как сделать, если еще в ssh псевдо-tty выделение для удаленного сервера - PullRequest
0 голосов
/ 23 сентября 2019

Я пытался ssh с pseudo-tty allocation на удаленном сервере, используя следующий скрипт bash:

ssh -t -t user@remote-host
if [ -d "/test/dir_test" ]; then
  sudo chown -R user:admin /test/dir_test/
  sudo rm -rf /test/dir_test/*
else        
  sudo mkdir /test/dir_test/
fi

, который проверяет, существует ли /test/dir_test на remote-host, если нет, создать такой каталог test/dir_test на удаленном хосте;но скрипт не работает, мне интересно, как это сделать, используя ssh с pseudo-tty allocation в этом случае.

Ответы [ 2 ]

2 голосов
/ 23 сентября 2019

Вы должны будете процитировать команды, которые должны быть отправлены на сервер, следующим образом:

ssh -t -t user@remote-host "
if [ -d '/test/dir_test' ]; then
  sudo chown -R user:admin /test/dir_test/
  sudo rm -rf /test/dir_test/*
else        
  sudo mkdir /test/dir_test/
fi"

Имейте в виду, что sudo нужен пароль, если иное не указано в его конфигурации.

1 голос
/ 23 сентября 2019

Вы можете отправлять команды через стандартный ввод с помощью heredoc:

ssh -tt user@remote-host <<EOT
if [ -d "/test/dir_test" ]; then
  sudo chown -R user:admin /test/dir_test/
  sudo rm -rf /test/dir_test/*
else        
  sudo mkdir /test/dir_test/
fi
exit
EOT

Обратите внимание на последнюю команду выхода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...