Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Удалить папку на удалённой машине  (Прочитано 269 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн qwrerwerwerewr

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Удалить папку на удалённой машине
« : 16 Октябрь 2015, 17:13:18 »
Всем привет!
Нужно удалить папку на удалённой машине через sh скрипт.
ssh настроен. К примеру scp -r /home/user/fff// qwe@1.2.1.2:/home/ss/ срабатывает без ввода пароля

Теперь необходимо удалить папку. Вот мой скрипт:
#!/bin/sh
ssh qwe@1.2.1.2
cd /home/ss/
rm -r /ff/

В результате происходит подключение к серверу, а дальнейшие команды игнорируются.
Мне нужно именно запускать через скрипт. Если просто последовательно вводить команды в терминал - всё работает нормально.
« Последнее редактирование: 16 Октябрь 2015, 17:16:32 от qwrerwerwerewr »

Оффлайн _art_

  • Активист
  • *
  • Сообщений: 370
    • Просмотр профиля
Re: Удалить папку на удалённой машине
« Ответ #1 : 17 Октябрь 2015, 10:18:00 »
Ну а... это самое... когда вы по ssh зашли на компьютер ( ssh qwe@1.2.1.2 ) пароль кто будет вводить ?
Что-то я не вижу у вас в скрипте этого...
Как настроена аутентификация ? По текстовому паролю/ключу ?

Оффлайн qwrerwerwerewr

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Удалить папку на удалённой машине
« Ответ #2 : 17 Октябрь 2015, 19:01:14 »
аутентификация настроена по ключу. такой скрпт отрабатывает нормально без ввода пароля:

#!/bin/sh
scp -r /home/user/fff/ qwe@1.2.1.2:/home/ss/

А вот в результате этого скрипта:
#!/bin/sh
ssh qwe@1.2.1.2
cd /home/ss/
rm -r /ff/
 
происходит подключение к серверу, а дальнейшие команды игнорируются.


« Последнее редактирование: 17 Октябрь 2015, 19:13:28 от qwrerwerwerewr »

Оффлайн _art_

  • Активист
  • *
  • Сообщений: 370
    • Просмотр профиля
Re: Удалить папку на удалённой машине
« Ответ #3 : 17 Октябрь 2015, 19:25:36 »
Ясно. Дело оказалось не в этом.

Изучите статью: http://thornelabs.net/2013/08/21/simple-ways-to-send-multiple-line-commands-over-ssh.html

Пример рабочего скрипта:
#!/bin/bash

HELLO="world"

ssh $HOST bash -c "'
ls

pwd

if true; then
    echo $HELLO
else
    echo "This is false"
fi

echo "Hello world"
'"

 

Страница сгенерирована за 0.191 секунд. Запросов: 23.