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