В сценарии оболочки SSH-соединение работает только для данных первой строки в CSV-файле, а команда не работает для остальных серверов

Я думаю, это близко к тому же. Я не могу судить, требует ли открытие большего количества окон с помощью терминала больше ресурсов, чем одно окно с большим количеством вкладок, но объект окна занимает процессорное время только при изменении. Вы можете протестировать производительность с помощью команды cp /dev/zero /dev/nullкоторая занимает 100% одного ядра (это простой нагрузочный тест ). Запустите больше таких команд на большем количестве терминалов и посмотрите на topили KSysGuard, чтобы увидеть результат. Я надеюсь, что у вас есть по крайней мере 16 ядер для этого.

1
06.01.2021, 08:54
1 ответ

Короче говоря, :сценарии оболочки SSH не работают так, как вы ожидаете, и это приводит к сбою вашего сценария.

То, что происходит, очевидно :«Первое» SSH-соединение установлено, и с этого момента все, что приходит из stdin, отправляется на SSH-соединение --, и Cisco понятия не имеет, что с этим делать. «команда», которая представляет собой строку CSV.

Из справочной страницы ssh:

SYNOPSIS
     ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port]
         [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J destination] [-L address]
         [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
         [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] destination [command]

Этот бит [command]является ключевым здесь --если вы хотите автоматизировать что-то на другом конце ссылки, вам нужно будет указать это в той же командной строке или не является частью команды ssh. waitи exitв вашем скрипте никогда не вызываются.

Попробуйте изменить строку на

sshpass -p $pass ssh -n -t -t -o "StrictHostKeyChecking no" $user@$ip 'wait; exit' >> output.txt

и посмотрите, работает ли это, хотя, честно говоря, я бы рекомендовал вместо этого настроить их в Ansible инвентаре; это может избавить вас от кучи головной боли, потому что тогда вы сможете просто запустить ansible -m ping ciscosи получить прекрасное резюме.

1
18.03.2021, 22:38

Теги

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