<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sat, 01 Aug 2026 06:50:28 -0400</pubDate>
		<item>
			<title>Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233689">Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Expect — отличный инструмент («язык»), который очень облегчает жизнь при любом интерактивном стиле взаимодействия. Но, конечно, всем хочется использовать другие инструменты, например, обычный ssh или различные языки программирования. Важный момент, на который стоит обратить внимание — это обработка stderr локальным/удаленным компьютером. Это редко делается правильно, потому что «на глаз», когда сессия интерактивная, всё кажется «выводом» со стороны удаленного компьютера. Daniel <br />
			<i>21.11.2004 13:18:00, daniel.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233689</link>
			<guid>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233689</guid>
			<pubDate>Sun, 21 Nov 2004 13:18:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233688">Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			В конце shell_cmd сопоставляем $out с регулярным выражением, примерно так: $out =~ / [1] \n([\S\s] )\n[\s\w/&gt;]$/; $out = $1; \s\w/ ↩︎ <br />
			<i>10.11.2004 15:43:00, Eugene.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233688</link>
			<guid>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233688</guid>
			<pubDate>Wed, 10 Nov 2004 15:43:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233687">Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Аргхххххххх! Досадная ошибка в Mikrotik… Я это видел давным-давно… Когда подключаешься к консоли на каком-то хосте, происходит вот что: после первой отправленной \r начинает работать нормально. До этого можно набрать команду, но удалить её и использовать клавишу "tab" не получается, потому что выдаёт 94A и после этого ничего не происходит… Если нажать Enter, команда не выполняется, но всё снова начинает работать нормально… Аргхххххххх! <br />
			<i>09.11.2004 23:58:00, _ASM.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233687</link>
			<guid>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233687</guid>
			<pubDate>Tue, 09 Nov 2004 23:58:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233686">Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я сделал walkaround. Просто добавь этот код в Net/Perl/SSH1.pm где-то после строки 339: sub shell_cmd {<br /> &nbsp; &nbsp;my $ssh = shift;<br /><br /> &nbsp; &nbsp;my($prompt, $cmd) = @_;<br /><br /> &nbsp; &nbsp;require Net::SSH::Perl::Handle::SSH1;<br /><br /> &nbsp; &nbsp;unless ($cmd) {<br /> &nbsp; &nbsp; &nbsp; &nbsp;$ssh-&gt;{config}-&gt;set('use_pty', 1)<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;unless defined $ssh-&gt;{config}-&gt;get('use_pty');<br /> &nbsp; &nbsp;}<br /> &nbsp; &nbsp;$ssh-&gt;_setup_connection;<br /><br /> &nbsp; &nbsp;$ssh-&gt;debug("Requesting shell.");<br /> &nbsp; &nbsp;my $packet = $ssh-&gt;packet_start(SSH_CMSG_EXEC_SHELL);<br /> &nbsp; &nbsp;$packet-&gt;send;<br /><br /> &nbsp; &nbsp;my ($packet,$pr);<br /> &nbsp; &nbsp;do {<br /> &nbsp; &nbsp; &nbsp; &nbsp;$packet = Net::SSH::Perl::Packet-&gt;read($ssh);<br /> &nbsp; &nbsp; &nbsp; &nbsp;$pr = $packet-&gt;get_str;<br /> &nbsp; &nbsp;} while ( ($pr =~ /$prompt/ ) == 0 );<br /><br /> &nbsp; &nbsp;$ssh-&gt;debug("Sending command.");<br /> &nbsp; &nbsp;my $packet = $ssh-&gt;packet_start(SSH_CMSG_STDIN_DATA);<br /> &nbsp; &nbsp;$packet-&gt;put_str($cmd);<br /> &nbsp; &nbsp;$packet-&gt;send;<br /><br /> &nbsp; &nbsp;$ssh-&gt;debug("Command sended");<br /><br /> &nbsp; &nbsp;my $out = "";<br /><br /> &nbsp; &nbsp;do {<br /> &nbsp; &nbsp; &nbsp; &nbsp;$packet = Net::SSH::Perl::Packet-&gt;read($ssh);<br /> &nbsp; &nbsp; &nbsp; &nbsp;$out .= $packet-&gt;get_str;<br /> &nbsp; &nbsp;} while ( ($out =~ /$prompt/ ) == 0 );<br /> &nbsp; &nbsp;$ssh-&gt;_disconnect;<br /> &nbsp; &nbsp;($out);<br />}<br />Скрипт выглядит так: #!/usr/bin/perl<br />use Net::SSH::Perl;<br />$ssh = Net::SSH::Perl-&gt;new("host_here", port =&gt; 22, protocol =&gt; 1, use_pty =&gt; 1, debug =&gt; 0 );<br /><br />$ssh-&gt;login('admin', 'password_here');<br /><br />($out) = $ssh-&gt;shell_cmd("] &gt;","/ppp active print count-only\r");<br /><br />($out =~ /(\d+)/) && (($out) = ($1));<br /><br />print $out;<br />Я создал функцию shell_cmd. Она принимает 2 параметра. Первый — это ожидаемый промпт, а второй — команда для выполнения. Известные ошибки: команда, выполненная, находится в первой строке вывода. Последняя строка — это промпт. Так как я забыл язык PERL, любая помощь в исправлении ошибок приветствуется. <br />
			<i>09.11.2004 20:44:00, _ASM.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233686</link>
			<guid>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233686</guid>
			<pubDate>Tue, 09 Nov 2004 20:44:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233685">Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я немного вас обманул. Скрипт, который работает с 2.7.18, имеет use_pty =&gt; 1. Если я установлю его в ноль, я получу тот же результат, что и с 2.8.18. Но 2.8.18 не работает даже с use_pty =&gt; 1. <br />
			<i>09.11.2004 17:38:00, _ASM.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233685</link>
			<guid>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233685</guid>
			<pubDate>Tue, 09 Nov 2004 17:38:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233684">Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Кажется, один и тот же скрипт работает и с RouterOS версии 2.7.18. Какие есть идеи? (Похоже на какую-то ошибку в RouterOS). <br />
			<i>09.11.2004 17:10:00, _ASM.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233684</link>
			<guid>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233684</guid>
			<pubDate>Tue, 09 Nov 2004 17:10:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233683">Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			У меня была такая же проблема ещё пару месяцев назад, но я разобрался. Вот только не помню, как именно это сделал. Большой раз между Net::SSH и Net::SSH::Perl. Net::SSH использует команду ssh. Net::SSH::Perl — это SSH-клиент, полностью написанный на Perl. Когда я вспомню, как это сделал, обязательно здесь напишу. <br />
			<i>09.11.2004 17:04:00, _ASM.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233683</link>
			<guid>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233683</guid>
			<pubDate>Tue, 09 Nov 2004 17:04:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233682">Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Кажется, MikroTik не поддерживает выполнение команд через интерфейс $ssh user@host command. Expect позволяет разбирать строки с помощью регулярных выражений. Если этого недостаточно, можно вызвать Expect из Perl-скриптов. Я не особо разбираюсь в Expect, просто не вижу другого надежного способа. <br />
			<i>09.11.2004 15:24:00, Eugene.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233682</link>
			<guid>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233682</guid>
			<pubDate>Tue, 09 Nov 2004 15:24:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233681">Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Видел я, но есть небольшие проблемы с запуском. Еще хочу написать несколько скриптов для работы со строками и прочие штуки. Не понимаю, в чем дело, и хочу понять, почему работает на Linux, а не на Mikrotik. <br />
			<i>09.11.2004 11:08:00, _ASM.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233681</link>
			<guid>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233681</guid>
			<pubDate>Tue, 09 Nov 2004 11:08:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233680">Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я бы выбрал Expect. <br />
			<i>09.11.2004 09:58:00, Eugene.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233680</link>
			<guid>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233680</guid>
			<pubDate>Tue, 09 Nov 2004 09:58:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233679">Проблемы с использованием Perl Net::SSH:Perl lib и Mikrotik</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я написал этот скрипт: use Net::SSH::Perl;<br />$ssh = Net::SSH::Perl-&gt;new("host", port =&gt; 22, protocol =&gt; 1, use_pty =&gt; 0);<br /><br />$ssh-&gt;login('admin', 'pass') or die("Cannot connect to host");<br /><br />($out, $err, $exit) = $ssh-&gt;cmd('/ppp active print count-only');<br /><br />print $out; Но когда запускаю его, получаю в выводе "/ppp?", а $error установлен в 127. Тот же самый скрипт, только меняю хост на удалённую Linux-машину и команду для выполнения, и всё работает нормально. Какие идеи?<br />P.S.: Заметил, что скрипт не подключается к роутеру. Если изменить скрипт на следующий код, он устанавливает удалённую сессию:<br />use Net::SSH::Perl;<br />$ssh = Net::SSH::Perl-&gt;new("host", port =&gt; 22, protocol =&gt; 1, use_pty =&gt; 0);<br /><br />$ssh-&gt;login('admin', 'pass') or die("Cannot connect to host");<br />use Term::ReadKey;<br />ReadMode('ultra-raw');<br />$ssh-&gt;shell;<br />ReadMode('restore'); <br />
			<i>08.11.2004 19:14:00, _ASM.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233679</link>
			<guid>http://mikrotik.moscow/forum/forum57/61172-problemy-s-ispolzovaniem-perl-net_ssh_perl-lib-i-mikrotik/message233679</guid>
			<pubDate>Mon, 08 Nov 2004 19:14:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
