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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Expect  (Прочитано 1072 раз)

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

Оффлайн Genal

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Expect
« : 31 Декабрь 2011, 22:14:24 »
Хочу чтоб автоматически Ubuntu в определенное время заходила на другую машину (на Дебиан) авторизировалась там, и для начала создавала файл, и выходила (потом попытаюсь всунуть это в крон). На одном сайте нашел что можно это сделать с поммощью експект. Но почемуто невыходит, вроде авторизируеться но потом в убунте сыпеться "подтвердит да или нет" если ниче невставлять то оно идет само по себе можно ставить "да" но разницы нет как и результата созданого файла в дебиане. Скажите ли вообще такое возможно и если да скажиет что делаю не так.

#!/usr/bin/expect
spawn ssh логін@192.168.1.1
expect "password:"
end "пароль\r"
expect -re "\\$ $"
send "su\r"
expect "(Пароль:)"
send "пароль_root\r"
expect -re "# $"
send "touch file"
send "exit\r"
expect -re "\\$ $"
send "logout\r"
expect "closed."
exit 0

Спасибо.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Expect
« Ответ #1 : 02 Январь 2012, 17:04:50 »
Осильте уже авторизацию по ключу и конфигурацию sudo и внезапно жизнь станет проще

Оффлайн Genal

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Expect
« Ответ #2 : 02 Январь 2012, 17:59:01 »
...
send "пароль\r"
...

Это тут просто случайно с сопечаткой, н самом деле у меня правильно send.




Пользователь решил продолжить мысль 02 Январь 2012, 18:13:16:
Осильте уже авторизацию по ключу и конфигурацию sudo и внезапно жизнь станет проще

Про авторизацию по ключу sudo непонял, зачем мне если я могу использовать и su (именно так я захожу в дебиан как рут пользователь), или єто както мешает мне авторизироваться с другой машины? (sudoers у меня в дебиане ненастроено, но пока непонимаю зачем мне єто)
« Последнее редактирование: 02 Январь 2012, 18:13:16 от Genal »

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: Expect
« Ответ #3 : 02 Январь 2012, 23:35:20 »
...
send "пароль\r"
...
send "touch file\r"
...
В остальном, УМВР.
Клиент и сервер -- fedora-16.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Expect
« Ответ #4 : 03 Январь 2012, 07:57:41 »
1)
Genal, сейчас ты все это делаешь очень нерационально =)
когда все правильно настроено достаточно команды
ssh логін@192.168.1.1 sudo touch fileизвращайся дальше =)

2)
[текст удален модератором]

Текст сообщения приведен в соответствие с требованиями п. 2.2 Правил форума.

--andrew_bye
« Последнее редактирование: 03 Январь 2012, 15:25:26 от andrew_bye »

Оффлайн Genal

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Expect
« Ответ #5 : 05 Январь 2012, 18:21:57 »
извращайся дальше =)

Что ж тут поделаешь, мне нужно заходит вообще не на линукс с ним я експерементирую, а заходить хочу на другое устройство у которого строка как в циска, и вообще по телнету, поєтому пока извращаюсь (тренируюсь) с линукса на линукс, правда невыходить чет, а на том устройстве нужно именно так задавать команды, ssh blabla@192.168.1.1 touch file - непрокатить к сожалению, плюс мне еще нужно извлекать от туда то что отобразиться в телнете после ввода команды анализировать и отсылать в зависимотси от анализа следующую команду.

Спасибо.

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: Expect
« Ответ #6 : 06 Январь 2012, 01:10:25 »
Genal, если у вас что-то не работает, показывайте весь вывод терминала в процессе подключения, иначе ошибку мы не найдём.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Expect
« Ответ #7 : 06 Январь 2012, 10:11:21 »
русский языка мой любимый языка
google language tools и то меньше отжигают
кое как понял что требовалось, сочувствую, вам и вашему устройству.

Пользователь решил продолжить мысль 06 Январь 2012, 17:53:40:
http://habrahabr.ru/blogs/sysadm/127748/
« Последнее редактирование: 06 Январь 2012, 17:53:40 от Yurror »

Оффлайн Genal

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Expect
« Ответ #8 : 06 Январь 2012, 22:26:46 »
Здраствуйте. Всех с Рождеством!!!

Genal, если у вас что-то не работает, показывайте весь вывод терминала в процессе подключения, иначе ошибку мы не найдём.

Вот вывод, проверил файндом (find), может создает не в той директории где я ищу, но такого файла нету
в другой машине, тоесть ничего несоздаеться.

root@ubuntu:~# ./control.save
spawn ssh genal@192.168.1.5
The authenticity of host '192.168.1.5 (192.168.1.5)' can't be established.
RSA key fingerprint is b3:11:ae:68:3b:30:ae:05:de:7c:f9:8a:70:6e:35:81.
Are you sure you want to continue connecting (yes/no)? y
kbvfhtyrj
Please type 'yes' or 'no': su
Please type 'yes' or 'no': kbvfhtyrj
Please type 'yes' or 'no': touch Helloppppp
Please type 'yes' or 'no': exit
Please type 'yes' or 'no': logout
Please type 'yes' or 'no': root@ubuntu:~# y
y: command not found
root@ubuntu:~#

Вот вход с патти на удаленную машину:

Using username "genal".
genal@192.168.1.5's password:
Last login: Fri Jan  6 10:19:11 2012 from 192.168.1.2
[genal@dhcppc3 ~]$ su
Password:
[root@dhcppc3 genal]#

Yurror - cпасибо, выходит просто  експектом send и еxec мне необойтись? Просто я вообще дупль в питоне, прийдеться долго вникать (и нефакт что выйдет).
P.S. Кстати стеб неочень както веселый, кто будет читать врятли даже улыбнеться, мне вообще всеравно, стебись нестебись, я и вправду нешарю :)
Почитаю еще в опеннет тоже есть статья
« Последнее редактирование: 06 Январь 2012, 22:29:21 от Genal »

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: Expect
« Ответ #9 : 07 Январь 2012, 06:30:26 »
Цитировать
Are you sure you want to continue connecting (yes/no)?
Не "y", не "Y", а "yes" целиком!

Оффлайн Genal

  • Автор темы
  • Новичок
  • *
  • Сообщений: 16
    • Просмотр профиля
Re: Expect
« Ответ #10 : 28 Январь 2012, 23:11:45 »
Спасибо работает.
Правда я уже на теленете проверил.
Еще такой вопрос когда я использую експект, и делаю его перенаправление (перенаправление вывода) то получаю только что что вводить непосредственно експект, могу ли я перенаправить в файл все что выводиться в консоли удаленного терминала (абсолютно все, от начала подключения и до выхода ЕОФ а не только то что вводить сам експект)?

 

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