Приветствую.
Есть скрипт, который подключается к оборудованию (маршрутизатор Cisco) и отправляет на него некоторые команды по SSH. Количество команд обычно несколько десятков, может быть сотен.
Сделал так:Код (Text):
$ssh = ssh2_connect(‘1.2.3.4’, 22); ssh2_auth_password($ssh, ‘user’, ‘password’); foreach ($cmds as $cmd) { print $cmd; $tmp = ssh2_exec($ssh, $cmd); stream_set_blocking($tmp, true); ssh2_fetch_stream($tmp, SSH2_STREAM_STDIO); if ($tmp === false) { print » !failed\n»; } print «\n»; }; ssh2_disconnect($ssh);Но с таким кодом выполняется только первая команда, для остальных выдается ошибка «ssh2_exec(): Unable to request a channel from remote host».
Если ssh-подключение засунуть внутрь цикла, то на второй и последующих командах выдается ошибка «Failure ‘transport read’ (-43)», даже если делать паузу в несколько секунд.
Не подскажите, как несколько команд запускать правильно?