expect

Просмотр MAC адресов на портах свитчей Huawei, Linksys, DLink, Extreme

Каждый день взаимодействуя с тех.поддержкой приходится лазить на свитчи и глядеть маки. В принципе ничего сложного, но хотелось как то упросить себе работу.

Освоил expect и сразу в бой. Написал, опробовал, получилось. Теперь делюсь с Вами, может кому и пригодится.

Сначала создадим пустой файлик
nano ./get_mac.sh

теперь нужно вставить внутрь туда код который ниже:

#!/usr/bin/expect -f
if {[llength $argv] != 2} {
puts "Не верно указаны переменные: ./get_mac 10.5.X.XXX 'port'"
exit 1
}
set ip [lindex $argv 0]
set eth [lindex $argv 1]

Скрипт выполняющий команду на dlink des-3526

Впринципе скрипт можно заточить под что угодно

#!/usr/bin/expect
 
if {[llength $argv] != 2} {
  puts "Вызов: dlink_command <ip_address_switch> <command>"
  puts "если команда состоит из нескольких слов, то её нужно заключить в кавычки"
  exit 1
}
set hostname [lindex $argv 0]
set COMMAND [lindex $argv 1]
set prompt "DES-3526:admin#"
set password ""
 
 
package require Expect
 
spawn telnet $hostname
expect username:
send admin\r
expect password:
send $password\r
expect -exact $prompt
send "$COMMAND\r"
expect -exact $prompt
send save\r
expect -exact $prompt