Здравствуйте.
Ребята, я новичок. Пожалуйста , не забрасывайте камнями.
Принесли железяку.
Сказали , что заббикс сервер должен должен на нее удаленно логиниться и запускать iperf3 сервер на удаленной стороне и в тоже время
iperf клиент от себя.
уже пару дней борюсь.
была неудачаная попытка создать скрипт.
Пока , даже автозалогинивание не удалось полечить.
sshpass ssh ubnt:10.1.48.9
ssh: Could not resolve hostname ubnt:10.1.48.9: Name or service not known
хотя
ping 10.1.48.9
PING 10.1.48.9 (10.1.48.9) 56(84) bytes of data.
64 bytes from 10.1.48.9: icmp_seq=1 ttl=56 time=31.1 ms
64 bytes from 10.1.48.9: icmp_seq=2 ttl=56 time=32.1 ms
64 bytes from 10.1.48.9: icmp_seq=3 ttl=56 time=31.1 ms
Вводные:
1) если нахожусь на сервера забикса через putty и ввожу ssh ubnt:10.1.48.9 'hostname' получаю ответ :
ubnt@10.1.48.9's password:(потом расскажу про веб интерфейс и отработку данной команды через него, если зайдет речь)
Таких роутеров может быть очень много , поэтому из всейс строки ubnt@10.1.48.9's password: - мне по сути нужно только последнее слово "password:". Пытался обрезать все остальное при помощи
s="start_string_end"
var1=${s%string*} #До стринг
var2=${s#*string} #После стринг
у меня не получилось. Банально не хватает знаний. может вообще все криво делаю.
пытался загнать ответ роутера в переменную или даже в файл и потом распечатать ее, чтобы увидеть чтоже он передает.
Но она пустая. Опять таки , вероятно кривые руки.
login_EdgeRouter.shssh ubnt@10.1.48.9
read $REPLY > /home/reply
echo $REPLY > /home/reply
Но в ответ пустота.
нашел на просторах инета инфо про
autoexpect ./login_EdgeRouter.sh
в ответ
set timeout -1
spawn ./login_EdgeRouter.sh
match_max 100000
send -- "\r"
expect -exact "\r
"
send -- "\r"
expect -exact "\r
"
send -- "\r"
expect -exact "\r
"
send -- ""
expect eof
В общем в голове слошнейшая каша и идеи заканчиваются.
Помогите , пожалуйста.
Обещаю прочитать
http://ruvds.com/doc/bash.pdf (Bash-скрипты, руководство в 11 частях Источник:
https://likegeeks.com/ Перевод:
https://habrahabr.ru/company/ruvds/blog/)
Но на дайнный момент очень нуждаюсь в помощи коллективного разума.
Пользователь добавил сообщение 16 Сентября 2020, 05:44:17:
Ребята, таки нашел способ для автозалогинивания. все оказалось просто. Руки выравниваются ))
1 #!/usr/bin/expect
2
3 spawn ssh username@10.1.48.9
4 expect "username@10.1.48.9's password:"
5 send "password\r"
6 interact
Теперь осталось понять как в рамках одной сессии запустить сервис на удаленном хосте, не закрывая сессию запустить сервис на локальном компе.
Или же как в рамках скрипта сделать разделение по разным сессиям.