XUser
написал 9 февраля 2005 года в 10:55 (879 просмотров)
Ведет себя
неопределенно; открыл 1 тему в форуме, оставил 1 комментарий на сайте.
Сразу скажу, я не спец в области UNIX-систем, но как это всегда бывает, приходится совмещать несколько профессий.
Вопрос в следующем — возможно ли простыми средствами написать скрипт (например под shall) который бы с помощью утилиты telnet коннектился к определенному хосту, передавал туда логин, пароль для входа и выполнял одну определенную команду. Разультат ее выполнения выдавал в командной строке или писал в какой-нибудь файл.
Система Solaris 8.
Сеть естественно имеется и работает правильно. Просто надоело для проверки каждый раз вручную вводить команды, да и автоматизацию контроля пора уже делать :)
Всем спасибо
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Используй для этих целей expect.
Вот <font color=«red»>пример</font> скрипта:
добрый такой пример, лаааасковый.
для любителей работать удалённо рутом :))))
а не проще ли использовать ssh и авторизацию по ключу?
тем более, что весь трафик по ssh шифруется.
По поводу SSH я уже думал, но удаленная железка слишком глупая и его не поддерживает.
Пример попробую.
to Genie — Не могли бы Вы по подробнее рассказать какие проблеммы могут возникнуть при его использовании, я в этом пока не силен.
Спасибо.
<font color=«red»><font size=«+2»>НЕЛЬЗЯ</font></font> использовать приведённый пример как есть.
особенно, если логинишься под пользователем root.
очень внимательно смотри на пример.
«патч Брамина» — великая сила. ;))
а что умеет железка?
только telnet?
ну, тогда действительно, используй expect, как и сказал Master. читай к нему описание, ман, документацию — это из того, что есть на диске при установленной программе. /usr/share/doc/expect или что-то в этом роде.
Ну, как есть он будет буянить только если пароль вдруг окажется равен «my_password» :)
К тому же, если я правильно понял, удалённый хост — некая железка (ну, киска какая-нибудь, к примеру, али просто свитч) и не факт, что у неё система команд такая же :)
мда? может всё же вниииимательнее поглядим на скрипт? ;D
Прежде чем говорить подобные глупости? ;)))
Ай! Да хай пустит! Будет урок на всю жисть…
Да, то что оно на localhost коннектится я не заметил.
Но это вообще делает скрипт _as is_ практически безопасным. Кто же на localhost telnet держит?
Буянить этот скрипт будет в двух случаях:
1. На localhost запущен telnet и пароль рута равен my_password
2. Перед запуском скрипт был исправлен (прописаны логин/пароль и IP удалённого хоста) и система команд на удалённом хосте более-менее совместима с unix.
Так что глупость я сказал не такую уж и большую.
Уточню на всякий случай ещё раз: «как есть» — имелось в виду совсем без исправлений. Без прописывания пароля и IP. Впрочем, это было очевидно и из моего первого постинга.
Пустил. Никакого эффекта. telnet не запущен.
Блин, друг, нельзя быть таким трудным, а?
Читай скрипт по строчкам и думай, что каждая строка делает.
До десяти считать умеешь?
Автору сего творения (скрипта) должен заметить, что обсуждение сие есть лучший показатель того, что так делать НЕ НАДО, даже живя в заповеднике Эйнштенов.
Good Luck,
UT
Скрипт обламывается раньше и закрывается. До rm дело не доходит.
Нда… ну, если telnet не запущен, то чего ты ожидал ;). В условиях задачи упоминалось про утилиту telnet не зря. Следовательно, сервер телнетовский на удалённой железке запущен. Так что и ты запусти telnet-сервер у себя, а потом уже пробуй. Ах да, про expect НЕ ЗАБУДЬ!
Слыште дайте список серверов к которым можно подключиться через телнет на 25 порт. =))
Слышь, вообще-то вопрос не в тему.
Хотя, вот тебе один: mail.dinfo.ru.
Только толку тебе от соединения на 25-ый порт? Ты открытые рилеи ищешь? Паскуда чтоли? Бр.. в смысле, спамер? Видимо, ещё очень молодой спамер. Потому как не факт, что если сервер пускает telnet на 25-ый порт, то обязательно открытый рилей.
Доброго времени суток.
Подскажите, а что есть spawn, в данном примере скрипта… а еще такой вопросик, я тут в ман"е по телнету, увидел что вроде как можно задавать команду echo, тока у меня с английским тяжко, по етому не понял возможно ли ее задавать параметром, ну там telnet host port !echo, или как то так…. Или это ваще не о том…
Спасибо за внимание и понимание… :-)
см. man expect
Небольшое замечание к строке «spawn rm -rf /». Здесь необходимо поставить send вместо spawn, в противном случае «rm -rf /» будет выполняться на локальной машине. Короче, эта срока должна выглядеть так
send «rm -rf /\r»
Если конечно автор этого скрипта подразумевал запускать эту команду на удалённой машине, в данном случае localhost.