Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Expect: Удаленное выключение компьютера

Ответить
Настройки темы
Expect: Удаленное выключение компьютера

Аватара для ven00m

Пользователь


Сообщения: 76
Благодарности: 12

Профиль | Отправить PM | Цитировать


Надоело каждый раз подключаться по ssh чтобы выключить компьютер. Написал небольшой скрипт:
Код: Выделить весь код
#!/usr/bin/expect
set timeout 30
spawn ssh -p 443 192.168.1.10
expect "user@mycomp" { send "sudo su\r" }
expect {
"password for*:" { send "mypassword\r" }
"root@*#" { send "halt\r" }
}
expect {
"root@*#" { send "halt\r" }
}
Но почему то он срабатывает только со второго раза. В первый запуск он только логинется под рутом, а во второй выключает.
Подскажите что не так в скрипте.
PS: ос Ubuntu Server

Отправлено: 10:26, 24-05-2010

 

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток. Подозреваю, что топикстартер свою проблему уже решил. Пишу для тех, кто с ней только столкнулся.
Для начала устанавливаем expect:
sudo apt-get install

После, создаём файл, который у нас станет скриптом выключения сервака. У меня его содержимое выглядит так:

#!/usr/bin/expect -f #Строка идентификации
spawn ssh -p Порт IP-Адрес #Запуск подпроцесса соединения с сервером через ssh
expect -re"password:" #Ожидание ответа, содержащего в тексте - password:
send "пароль\r" #Дождавшись, отослать пароль
expect -re "\\$ $" #Ждём строку, содержащую $(на него заканчивается приглашение системы)
send "sudo su\r" #Отсылаем команду sudo su для перехода в режим суперпользователя
expect -re "password for пользователь:" #Ждём запрос пароля
send "пароль\r" #Подтверждаем права паролем
expect -re "# $" #Ждём строку, содержащую $
send "poweroff\r" #Тушим сервер
expect -re "power off NOW!" #Удостоверяемся, что машина ушла на выключение
exit 0 #Собственно, удаляемся сами

У топикстартера присутствует строка "set timeout 30", назначение которой для меня осталось тайной, возможно она Вам тоже пригодится.

Отправлено: 17:26, 06-03-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Странный тип


Сообщения: 813
Благодарности: 73

Профиль | Отправить PM | Цитировать


Пароли хранятся в файле открытым текстом? Плохо.

-------
Сколько не думай, а лучше водки ничего не придумаешь.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:59, 06-03-2011 | #3


ИО Капитана Очевидности


Contributor


Сообщения: 5383
Благодарности: 1105

Профиль | Отправить PM | Цитировать


Цитата Kent:
Пароли хранятся в файле открытым текстом? Плохо. »
Лучше использовать авторизацию по личному ключу.
1. Создать пару ключей (через ssh-agent)
2. СКопировать открытый ключ на удалённый компьютер и прописать в настройках ssh-сервера
3. Подать команду на соединение (ssh username@IP )
4. Профит

-------
Самое совершенное оружие, которым забиты арсеналы богатых и процветающих наций, может легко уничтожить необразованного, больного, бедного и голодного. Но оно не может уничтожить невежество, болезнь, нищету и голод. (Фидель Кастро)

Почему всех осужденных за измену Родине при Сталине реабилитировали при Горбачёве по отсутствию состава преступления? Потому что при Горбачёве измену Родине перестали считать преступлением.

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:45, 11-03-2011 | #4



Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » Expect: Удаленное выключение компьютера

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - Удаленное выключение и перезагрузка компьютера. poisonkit Microsoft Windows 2000/XP 10 03-02-2012 17:04
2008 R2 - Удаленное выключение Windows Server 2008 R2 kerevra Windows Server 2008/2008 R2 3 16-05-2010 20:34
[решено] Удаленное выключение сервера Dimas_83 Microsoft Windows NT/2000/2003 4 18-05-2007 20:34
удаленное выключение по сети - проблема Leo2 Сетевые технологии 2 19-12-2004 00:23
Удаленное выключение DimSher Microsoft Windows 95/98/Me (архив) 2 04-11-2003 12:15




 
Переход