<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Скрипт с массивом и считыванием в переменную части строки</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/9233.html</link>
    <description>Уважаемые форумчане, прошу вас не бить меня тапком и не ссылаться, что есть куча решений-гугл в помощь, ветка форума изучена, особенно тема про expect, но не хватает опыта, поделиться которым прошу вас.&lt;br&gt;&lt;br&gt;Задача следующая. написать скрипт выполнения однотипных операций для подсети маски 27.&lt;br&gt;&lt;br&gt;Проблема в том, что:&lt;br&gt;&lt;br&gt;1. не могу найти пример реализации автоматического входа на оборудование в массиве, то есть&lt;br&gt; 192.168.1.2 - залогинился, выполнил команды, пошел на 192.168.1.3, опять выполнил команды,  ----и так далее---как цикл правильно оформлять?&lt;br&gt;2. при вводе логина-пароля появляется hostname, который необходимо внести в один из пунктов этой же железки в теле самого цикла- нужно записать строку в переменную.&lt;br&gt;&lt;br&gt;Если вручную, то так, алгоритм прост:&lt;br&gt;&lt;br&gt;telnet 192.168.1.2&lt;br&gt;username:admin&lt;br&gt;password:*****&lt;br&gt;Router2&amp;gt;en&lt;br&gt;Router2#  (запомнить строку до символа решетки в строковую переменную Tab)&lt;br&gt;Router2#conf t&lt;br&gt;Router2#bridgeport circuit-id client Tab ( строковую переменную вставляем)&lt;br&gt;Router2#copy run start&lt;br&gt;Rout</description>

<item>
    <title>Скрипт с массивом и считыванием в переменную части строки (polka)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/9233.html#3</link>
    <pubDate>Mon, 05 Sep 2011 08:30:33 GMT</pubDate>
    <description>Благодаря терпению отличного человека  beebeeep на свет родился функционирующий скрипт, удовлетворяющий поставленной задаче темы, делюсь с другими:&lt;br&gt;&lt;br&gt;#!/usr/bin/expect -f&lt;br&gt;set host &#091;lrange $argv  0 0&#093;&lt;br&gt;spawn telnet $host&lt;br&gt;expect &quot;username&quot;&lt;br&gt;send &quot;admin&#092;r&quot;&lt;br&gt;expect &quot;password&quot;&lt;br&gt;send &quot;admin&#092;r&quot;&lt;br&gt;expect -indices -re &quot;&#092;n(.*)#&quot;&lt;br&gt;set Tab $expect_out(1,string)&lt;br&gt;send &quot;conf t&#092;r&quot;&lt;br&gt;send &quot;bridgeport circuit-id client $Tab &#092;r&quot;&lt;br&gt;expect &quot;#&quot;&lt;br&gt;send &quot;copy run start&#092;r&quot;&lt;br&gt;expect &quot;(y/n)?&quot;&lt;br&gt;send &quot;y&#092;r&quot;&lt;br&gt;expect &quot;#&quot;&lt;br&gt;send &quot;quit&#092;r&quot;&lt;br&gt;expect eof&lt;br&gt;&lt;br&gt;Самое хорошее, внутри цикла можно модифицировать исполняемые команды, расширять, заливать- на что хватит желания и потребностей. Спасибо.&lt;br&gt;</description>
</item>

<item>
    <title>Скрипт с массивом и считыванием в переменную части строки (beebeeep)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/9233.html#2</link>
    <pubDate>Fri, 02 Sep 2011 18:29:01 GMT</pubDate>
    <description>Ну и chmod +x ./config.expect не забыть ага &lt;br&gt;&lt;br&gt;&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt; Router2&amp;gt;en &lt;br&gt;&amp;gt;&amp;gt; Router2#  (запомнить строку до символа решетки в строковую переменную Tab) &lt;br&gt;&amp;gt;&amp;gt; Router2#conf t &lt;br&gt;&amp;gt;&amp;gt; Router2#bridgeport circuit-id client Tab ( строковую переменную вставляем) &lt;br&gt;&amp;gt;&amp;gt; Router2#copy run start &lt;br&gt;&amp;gt;&amp;gt; Router2#exit &lt;br&gt;&amp;gt;&amp;gt; telnet 192.168.1.3 &lt;br&gt;&amp;gt;&amp;gt; ............&lt;br&gt;&amp;gt;&amp;gt; аналогично как и для предыдущего адреса.&lt;br&gt;&amp;gt;&amp;gt; А программная реализация для меня непосильна.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Скрипт с массивом и считыванием в переменную части строки (beebeeep)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/9233.html#1</link>
    <pubDate>Fri, 02 Sep 2011 18:27:47 GMT</pubDate>
    <description>cat &amp;lt;&amp;lt; EOF &amp;gt; ./config.expect&lt;br&gt;#!/usr/bin/expect -f&lt;br&gt;set host &#091;lrange $argv 0 0&#093;&lt;br&gt;&lt;br&gt;spawn telnet $host&lt;br&gt;&lt;br&gt;expect &quot;username&quot;&lt;br&gt;send &quot;admin&#092;r&quot;&lt;br&gt;&lt;br&gt;expect &quot;password&quot;&lt;br&gt;send &quot;*****&#092;r&quot;&lt;br&gt;&lt;br&gt;expect &quot;&amp;gt;&quot;&lt;br&gt;send &quot;en&#092;r&quot;&lt;br&gt;&lt;br&gt;expect -indices -re &quot;(.*)#&quot;&lt;br&gt;set hostname $expect_out(0,string)&lt;br&gt;send &quot;conf t&#092;r&quot;&lt;br&gt;&lt;br&gt;expect &quot;#&quot;&lt;br&gt;send &quot;bridgeport circuit-id client Tab $hostname&#092;r&quot;&lt;br&gt;&lt;br&gt;expect &quot;#&quot;&lt;br&gt;send &quot;copy run start&#092;r&quot;&lt;br&gt;&lt;br&gt;expect &quot;#&quot;&lt;br&gt;send &quot;exit&#092;r&quot;&lt;br&gt;expect eof&lt;br&gt;EOF&lt;br&gt;&lt;br&gt;for x in &#096;seq 2 30&#096;; do ./config.expect 192.168.1.$x; done&lt;br&gt;&lt;br&gt;Как-то так, наверное. Не проверял.&lt;br&gt;&lt;br&gt;&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt; Router2&amp;gt;en &lt;br&gt;&amp;gt; Router2#  (запомнить строку до символа решетки в строковую переменную Tab) &lt;br&gt;&amp;gt; Router2#conf t &lt;br&gt;&amp;gt; Router2#bridgeport circuit-id client Tab ( строковую переменную вставляем) &lt;br&gt;&amp;gt; Router2#copy run start &lt;br&gt;&amp;gt; Router2#exit &lt;br&gt;&amp;gt; telnet 192.168.1.3 &lt;br&gt;&amp;gt; ............&lt;br&gt;&amp;gt; аналогично как и для предыдущего адреса.&lt;br&gt;&amp;gt; А программная реализация для меня непосильна.&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
