alibek23
Новичок
Приветствую.
Есть скрипт, который подключается к оборудованию (маршрутизатор Cisco) и отправляет на него некоторые команды по SSH. Количество команд обычно несколько десятков, может быть сотен.
Сделал так:
	
	
	
		
Но с таким кодом выполняется только первая команда, для остальных выдается ошибка "ssh2_exec(): Unable to request a channel from remote host".
Если ssh-подключение засунуть внутрь цикла, то на второй и последующих командах выдается ошибка "Failure 'transport read' (-43)", даже если делать паузу в несколько секунд.
Примеры из описания функции ssh2_exec (точнее из комментариев) я проверял, именно из них я и взял синхронный режим для потока, но не помогло.
Не подскажите, как несколько команд запускать правильно?
								Есть скрипт, который подключается к оборудованию (маршрутизатор Cisco) и отправляет на него некоторые команды по SSH. Количество команд обычно несколько десятков, может быть сотен.
Сделал так:
		Код:
	
	    $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);
	Если ssh-подключение засунуть внутрь цикла, то на второй и последующих командах выдается ошибка "Failure 'transport read' (-43)", даже если делать паузу в несколько секунд.
Примеры из описания функции ssh2_exec (точнее из комментариев) я проверял, именно из них я и взял синхронный режим для потока, но не помогло.
Не подскажите, как несколько команд запускать правильно?
	            