Expect примеры Linux
Expect - инструмент для автоматизации интерактивных приложений таких, как telnet, ftp, passwd, fsck, rlogin, tip, Использование ssh, ssh-keygen, sshpass с примерами и других. Expect поддерживает механизм регулярных выражений и основные возможности программирования, позволяющие простым скриптам эффективно управлять такими программами, не обладающими встроенным скрипт-языком, макросами, или другими механизмами программирования. Эффективен при работе с сетевым оборудованием - массовое обновление конфигураций управляемого (активного) сетевого оборудования с дифференцированным выполнением команд.
Одним из главных применений Expect являются коммерческие приложения. Многие из этих приложений предоставляют интерфейс командной строки, но, как правило, его недостаточно для написания скриптов. Они созданы для обеспечения пользователя средствами администрирования, но производители зачастую не тратят денег на создание полноценного скриптового языка.
Expect унаследовал синтаксис Tcl, который не похож на другие скриптовые языки, такие как Основы BASH скрипты, циклы, горячие клавиши, C shell (csh), и perl.
Expect портирован в языки Синтаксис Python и Perl в виде различных дополнительных модулей. Подмножество команд Expect-а портировано в Как установить Java на Ubuntu и доступно в SwitchTermJ (java-based Terminal Emulator). Реализация процедур в этих модулях это в основном интерпретация оригинальной версии с эквивалентной функциональностью.
- Установка в Debian
apt install expect-dev expect
expect_autoexpect
Скрипт expect_autoexpect позволяет создать скрипт с командами из текущей сессии. Например, создадим скрипт, который применяет изменения настройки для Softswitch VoIP платформа MVTS (Мера) Pro.
# expect_autoexpect autoexpect started, file is script.exp # telnet 127.0.0.1 7000 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. ****************************************************************************** * Multiprotocol VoIP Transit Softswitch * * * ****************************************************************************** mvts3g|> config /etc/mvts3g/system-1.conf Step 1: Parsing a configuration file... Step 2: Configuring the system... Step 3: Done. mvts3g|> exit Connection closed by foreign host.
Жмем Ctrl-D для завершения работы скрипта expect_autoexpect
# exit autoexpect done, file is script.exp
Теперь у нас получился запускаемый скрипт script.exp, который позволяет вместо набора трех команд просто запустить его:
# ./script.exp
Примеры использования
ftp_expect.sh
#!/usr/bin/expect -f ###################################################################################### #$remote_server - сервер, к которому осуществляется доступ # #$my_user_id - имя пользователя на сервере # #$my_password - пароль пользователя на сервере # #$my_command - команда, которая будет запущена на сервере set remote_server xxx.xxx.xxx.225 set my_user_id testuser set my_password testpass # Открыть ftp-сессию на удалённом сервере, и ждать запроса имени пользователя. spawn ftp $remote_server expect "username:" # Послать имя пользователя, и ждать приглашения ввода пароля. send "$my_user_id\r" expect "password:" # Послать пароль, и ждать приглашения ввода ftp. send "$my_password\r" expect "ftp>" # Переключиться в бинарный режим, и снова ждать приглашения ввода ftp. send "bin\r" expect "ftp>" # Выключить приглашение ввода. send "prompt\r" expect "ftp>" # Получить все файлы send "mget *\r" expect "ftp>" # Закончить ftp-сессию и ждать спецсимвол конца файла (eof). send "bye\r" expect eof
ssh_expect.sh
#!/usr/bin/expect -f #set timeout 100 set PASS "testpass" set USER "testuser" spawn ssh -T $USER@[lrange $argv 0 0]; expect "password:" send "$PASS\r" expect "$" send "ls\r" expect "$" send "exit\r" expect eof
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах