Ожидать, что скрипт не работает со скриптом bash
Я хочу сценарий, который SSH к удаленному серверу, а затем запустить сценарий, который находится на моем локальном компьютере, а затем сохранить вывод на моем локальном компьютере
Ожидайте скрипт для ssh на удаленный сервер:
#!/usr/bin/expect -f
set Timeout 2
set IPaddress 10.118.137.78
set Username "username"
set Password "password"
spawn ssh $Username@$IPaddress
expect "ssword:"
send "$Password\r"
скрипт для запуска на удаленной машине и сбора данных:
#!/bin/sh
for serveraddress in `cat list.out`
do
"seeisso $serveraddress | grep -E -i ' os |proddropdown'"
done >> getos
=== Не уверен, как: 1. объединить оба и получить результат. 2 в ожидаемом сценарии он не принимает \r и возвращает на новую строку.
1 ответ
Быстрый образец
#!/usr/bin/expect -f
set timeout -1
set Username "user"
set password "pass"
set ipaddress "host"
set script "script-name"
spawn $env(SHELL)
send -- "ssh $Username@$ipaddress $script\r"
expect "assword: "
send -- "$password\r"
send -- "exit\r"
expect eof
Это будет работать для выполнения сценария на удаленной стороне. Я не играл с этим слишком много, но когда это сделано, вы должны нажать Ctrl+C, чтобы выйти из режима ожидания. На этом этапе я настраивал бы ssh-ключи для небольшой среды и для более крупного использования кукол или чего-то еще, чтобы управлять этим, тогда для еще большего перехода к единому входу, возможно, kerberos.