Сценарий Bash - Ожидает, не отправляет пароль, который заканчивается $!. Также нужно улучшение для создания отчетов о приведенном к таймауту соединении

Обновление: проблема Пароля устраняется, и соединение испытало таймаут, сообщение было исправлено также.

Добавление \ прежде $! обработанный. Пример: *password\$!

set passwds { *password\$! @tempP@ss %Test4%}

Для приведенного к таймауту соединения, добавил ниже кода после "s пароль": строка

timeout { puts stdout "$server_address : connection timed out"}

Этот сценарий не сообщает если время соединения. Это просто переходит к следующему IP. Если бы это сообщило о приведенном к таймауту соединении, то я мог grep и находить весь IP легко и делаю что-то.

Я хочу, чтобы эта часть кода сообщила, прервалась ли связь

ssh -t root@$server_address "$*"

Также этому сценарию не удается отправить пароли, который заканчивается $!. Пароль *password$! но это отправляет его как *пароль

Ожидайте отладку с exp_internal 1:

expect: set expect_out(0,string) "\r\nPermission denied, please try again.\r\r\nroot@10.10.10.10's password: "
expect: set expect_out(spawn_id) "exp4"
expect: set expect_out(buffer) "\r\nPermission denied, please try again.\r\r\nroot@10.10.10.10's password: "
send: sending "*password\r" to { exp4 }
expect: continuing expect

Вот код:

#!/bin/bash
(( $# != 1 )) && { echo >&2 "Usage: $0 \"[COMMAND]\""; exit 1; }
servers_addresses=(10.10.10.10)
for server_address in ${servers_addresses[@]}; do
        expect <<EOF
set passwds { *password$! @tempP@ss %Test4%}
set i 0
spawn ssh -t root@$server_address "$*"
expect {
    "Are you sure you want to continue connecting (yes/no)?" { send "yes\r"; exp_continue }
    "s password:" { send "[lindex \$passwords_ssh \$x]\r"; incr x; exp_continue }
    eof
}
EOF
done
0
задан 10 November 2014 в 04:27
1 ответ

Переменные расширяются, если их использовать в двойных " кавычках, а Бэш рассматривает все, начиная с $, как переменную.

Вместо этого используйте одинарные кавычки ''. В случае ошибки

ssh заканчивается кодом выхода <> 0. Это хранится в $?

1
ответ дан 4 December 2019 в 17:07

Теги

Похожие вопросы