Ural penguins - Сообщения с тегом негодованиеhttp://uralbash.ru/blog/tag/негодование/atom.xml2012-12-19T15:27:00ZABlogСрань...http://uralbash.ru/articles/2012/sran/2012-12-19T15:27:00Z2012-12-19T15:27:00ZUralbash<div class="section" id="id1">
<p>В последнее время мне кажется что я пользователь <code class="docutils literal"><span class="pre">Интернета</span></code> в <code class="docutils literal"><span class="pre">Северной</span>
<span class="pre">Корее</span></code>.</p>
<img alt="_static/2012/sran1.png" class="align-center" src="_static/2012/sran1.png" />
<p>UPD:</p>
<img alt="_static/2012/sran2.png" class="align-center" src="_static/2012/sran2.png" />
</div>
debian business card зависает при установкеhttp://uralbash.ru/articles/2012/debian_bc/2012-09-15T18:40:00Z2012-09-15T18:40:00ZUralbash<div class="section" id="debian-business-card">
<p>При установке дистрибутива <code class="docutils literal"><span class="pre">debian-6.0.5-amd64-businesscard.iso</span></code> было
замечено зависание на шаге <code class="docutils literal"><span class="pre">network</span> <span class="pre">detect</span></code>. Из-за чего это происходит я не
знаю, но лечится нажатием <code class="docutils literal"><span class="pre">Ctrl+C</span></code> один или два раза. После чего начинается
поиск настроек сети при помощи <code class="docutils literal"><span class="pre">DHCP</span></code>.</p>
</div>
Что юзать в Python'е для SNMP...http://uralbash.ru/articles/2012/python_snmp/2012-04-17T15:15:00Z2012-04-17T15:15:00ZUralbash<div class="section" id="python-snmp">
<p>Для <a class="reference external" href="https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol">SNMP</a>
в питоне есть несколько библиотек но у всех свои недостатки.</p>
<p><a class="reference external" href="https://pypi.python.org/pypi/yapsnmp">yapsnmp</a> - быстрая, простая библиотека, но не обновлялась с 2004 года и
имеет некоторые глюки. Для установки во всякие там Линуксы требуется бубен. Не
работают многие флаги, например PRINT_NUMERIC_OIDS
(<a class="reference external" href="http://sourceforge.net/tracker/?func=detail&aid=1119247&group_id=21077&atid=121077">http://sourceforge.net/tracker/?func=detail&aid=1119247&group_id=21077&atid=121077</a>).</p>
<p><a class="reference external" href="https://pypi.python.org/pypi/PySNMP">PySNMP</a> - хорошая документация, но работает ОООооочень медленно, причем
даже в тредах. Для большого объема данных не подходит.</p>
<p><a class="reference external" href="http://net-snmp.sourceforge.net/wiki/index.php/Python_Bindings">Net-SNMP</a> -
обертка на питоне для netsnmp. Работает, синтаксис сложный.</p>
<p>Для просмотра таблицы коммутации используется команда типа:</p>
<div class="highlight-bash"><div class="highlight"><pre><span></span>snmpwalk -v 2c -c mycomm <span class="m">192</span>.168.1.100 <span class="m">1</span>.3.6.1.2.1.17.7.1.2.2.1.2 -O n
</pre></div>
</div>
<p>Флаг <code class="docutils literal"><span class="pre">-0</span> <span class="pre">n</span></code> означает вывод в цифровом виде (вместо бинарного).</p>
<p>Если Вы хотите запрограммировать эту команду на питоне, то <code class="docutils literal"><span class="pre">yapsnmp</span></code> не
подходит из-за флагов, <code class="docutils literal"><span class="pre">pysnmp</span></code> неподойдет если вам нужно например пройти
пару сотен/тысяч свичей. <code class="docutils literal"><span class="pre">Net-SNMP</span></code> слишком много букв писать в коде для
такой простой команды.</p>
<p>Поэтому как решение можно делать так:</p>
<div class="highlight-python"><div class="highlight"><pre><span></span><span class="k">for</span> <span class="n">ip</span> <span class="ow">in</span> <span class="n">hosts</span><span class="p">:</span>
<span class="n">fdb</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">popen</span><span class="p">(</span><span class="s2">"snmpwalk -v 2c -c mycomm </span><span class="si">%s</span><span class="s2"> 1.3.6.1.2.1.17.7.1.2.2.1.2 -O n"</span> <span class="o">%</span> <span class="n">ip</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">tmp</span> <span class="o">=</span> <span class="nb">map</span><span class="p">(</span><span class="nb">int</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"= INTEGER:"</span><span class="p">,</span> <span class="s2">"."</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"."</span><span class="p">)[</span><span class="mi">1</span><span class="p">:])</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
<span class="k">print</span> <span class="n">e</span>
<span class="k">continue</span>
<span class="n">mac</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%02x</span><span class="s2">:</span><span class="si">%02x</span><span class="s2">:</span><span class="si">%02x</span><span class="s2">:</span><span class="si">%02x</span><span class="s2">:</span><span class="si">%02x</span><span class="s2">:</span><span class="si">%02x</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">tmp</span><span class="p">[</span><span class="o">-</span><span class="mi">7</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
<span class="n">port</span> <span class="o">=</span> <span class="n">tmp</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="n">vlan</span> <span class="o">=</span> <span class="n">tmp</span><span class="p">[</span><span class="o">-</span><span class="mi">8</span><span class="p">]</span>
</pre></div>
</div>
<p>Вообщем я негодуэ!</p>
</div>