Назад | Перейти на главную страницу

ожидайте, что скрипт не работает со скриптом 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 и возвращается к новой строке.

Быстрый образец

#!/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.