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

ssh + множественное соединение ssh не удалось

У меня 47 клиентских машин Linux и одна серверная машина Solaris (все клиентские машины Linux имеют Red-Hat 5.1)

все клиенты выполняют ssh-соединение с сервером, чтобы проверить, существует ли на сервере /tmp/generic_error.txt

клиенты делают ssh ровно в 12:00

Я вижу что-то странное

Некоторые клиенты не распознали, что /tmp/generic_error.txt существует на сервере, несмотря на то, что этот файл существует

Итак, мой первый вывод: я не могу выполнять несколько ssh с 47 машины на один сервер?

Но я не уверен, что прав?

Посоветуйте, пожалуйста, какой процесс лучше всего выполнять ssh с 47 клиентов Linux на один сервер в одно и то же время?

примечание - я не могу коснуться и настроить "аутентификацию на основе ssh-ключа", потому что на машинах Lenox должен быть пароль (часть нашей политики безопасности)

10.10.18.61 - серверная машина

 expect=`cat << EOF

 set timeout -1
 spawn  ssh  10.10.18.61
       expect {
                 ")?"   { send "yes\r"  ; exp_continue  }

                 word:  {send freenelsonmandela\r}
              }
 expect >  {send "ls /tmp/generic_error.txt\r"}
 expect >    {send exit\r}
 expect eof
 EOF`

exe ожидать:

expect -c  "$expect"  | grep "generic_error.txt"  | grep -v ls

Если я правильно понимаю, у вас есть 47 клиентов, которым необходимо знать, существует ли какой-либо файл на сервере. И это нужно запускать одновременно.

Начнем с самого маленького компонента - вашего файла test. Вы можете расширить это

Это должно работать с большинством оболочек

ls /tmp/file 2>&1 >/dev/null && echo Found || echo Not Found

Или БАШ

[ -f /tmp/file ] && echo Found || echo Not Found

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

Теперь немного наружу, в конце вашего ожидания, вы ничего не делаете с результатами. скорее всего, это причина большинства ваших проблем. вы можете получить доступ $expect_out(buffer) который будет содержать то, что когда-либо было между последними совпадениями.

обычно это используется как:

puts "$expect_out(buffer)"