<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Another Geek Blog &#187; python</title>
	<atom:link href="http://geek.linuxman.pro.br/tag/python/feed" rel="self" type="application/rss+xml" />
	<link>http://geek.linuxman.pro.br</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Fri, 16 Dec 2011 01:55:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>No limite</title>
		<link>http://geek.linuxman.pro.br/geek/no-limite</link>
		<comments>http://geek.linuxman.pro.br/geek/no-limite#comments</comments>
		<pubDate>Sun, 18 Oct 2009 13:32:34 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1257</guid>
		<description><![CDATA[Na empresa fornecemos &#8220;software as service&#8221; para centenas de clientes que preferem ter tudo gerenciado por nós do que ter que lidar com a dor-de-cabeça que é gerenciar sistema operacional + aplicação. É um modelo muito bom pois pagam uma mensalidade e tem o serviço disponível o tempo todo, assim como pagamos mensalidade de eletricidade, [...]]]></description>
			<content:encoded><![CDATA[<p>Na empresa fornecemos &#8220;software as service&#8221; para centenas de clientes que preferem ter tudo gerenciado por nós do que ter que lidar com a dor-de-cabeça que é gerenciar sistema operacional + aplicação. É um modelo muito bom pois pagam uma mensalidade e tem o serviço disponível o tempo todo, assim como pagamos mensalidade de eletricidade, telefone e água.</p>
<p>Do nosso lado também é bom, pois fica mais fácil garantir a qualidade do hardware, acesso fácil aos servidores e sem nenhum nego fução mexendo em configuração e fazendo caquinha.</p>
<p>Um dos problemas de gerenciamento, porém, é quando você tem diversos clientes diferentes na mesma máquina e um deles monopoliza o tempo de processador. Isso acontece muitas vezes devido a  clientes fazendo teste em ambiente de produção, relatórios enormes sendo rodados em dias críticos ou simplesmente por bugs no software que fazem um processo chupar 100% de CPU.</p>
<p>Uma solução que achei recentemente foi o <a href="http://cpulimit.sourceforge.net/">cpulimit</a>, que consegue limitar o tanto de CPU que um processo usa diminuindo o problema causado por ele em caso dele começar a descer a ladeira sem freio.</p>
<p>O chato dele é o fato de que você precisa especificar qual processo deseja limitar e num ambiente como o nosso, onde novos processos aparecem e morrem o tempo todo, é preciso automatizar.</p>
<p>Acabei criando o script abaixo, que ainda precisa ser muito trabalhado, mas estou já publicando na esperança de conseguir algum bom feedback em como melhorá-lo. Não me entendam errado: ele já funciona.</p>
<p>Download aqui: <a href="http://geek.linuxman.pro.br/wp-content/uploads/2009/10/limitcpu.txt">limitcpu.py</a></p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/sysadmin" title="sysadmin" rel="tag">sysadmin</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/no-limite/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nettrack</title>
		<link>http://geek.linuxman.pro.br/geek/nettrack</link>
		<comments>http://geek.linuxman.pro.br/geek/nettrack#comments</comments>
		<pubDate>Sat, 25 Jul 2009 17:29:10 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[nettrack]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1183</guid>
		<description><![CDATA[UPDATE: A esposa falou que estou cada vez mais analfabeto. Reescrevi o primeiro parágrafo. UPDATE2: Mudei o Trac de lugar. Já que estou aprendendo a programar mesmo pensei em colocar algumas das coisas que estou vendo para ajudar no que eu realmente trabalho: administração de sistemas. Um problema que já vi N vezes é manutenção [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE</strong>: A <a href="http://flasustenido.com">esposa</a> falou que estou cada vez mais analfabeto. Reescrevi o primeiro parágrafo.</p>
<p><strong>UPDATE2</strong>: Mudei o Trac de lugar.</p>
<p>Já que estou aprendendo a programar mesmo pensei em colocar algumas das coisas que estou vendo para ajudar no que eu realmente trabalho: administração de sistemas.</p>
<p>Um problema que já vi N vezes é manutenção de uma base de dados com subnets, ips, switches, portas e hosts dentro da empresa. Mesmo no meu emprego atual alocação de IP é feito na base do &#8220;pingou, não respondeu, tá vago&#8221;. E não só lá, mas diversos outros lugares por onde passei era a mesma história.</p>
<p>E nos switches a mesma coisa. &#8220;Fulano, que host é esse na porta X que tá dando erro de CRC pra caramba? Não sabe? Perai que vou ver o MAC dele&#8230; &#8221; E ai começam os 15 minutos de arp/ping/nslookup pra descobrir que host era&#8230;</p>
<p>Pior quando a equipe de redes e a equipe de sistema operacionais não se entende e rola um troubleshooting de 2 horas para descobrir que o host certo, com o ip certo estava na porta certa do switch certo, mas com a vlan errada. Tenho pesadelos com isso até hoje.</p>
<p>Felizmente alguém pensou nisso no meu último trampo no Brasil e tentou resolver o problema. Mas a tentativa era apenas uma planilha Excel com todas as informações necessárias. O que funcionaria bem, se todo mundo tivesse sempre a mesma versão. O que não acontecia nunca, pois sempre alguém tinha um email velho, uma cópia salva no desktop ou, pior ainda, uma versão impressa de 2 semanas atrás.</p>
<p>Eu sempre quis criar uma versão web desse negócio, mas a falta de conhecimento sempre foi um problema e agora que tá sendo goela abaixo mesmo, vou aproveitar.</p>
<p>Além disso todo nerd precisa de um pet-project, certo?</p>
<p>Então tentei começar já do jeito certo, usando Python/Django (afinal não quero ficar me repetindo). Ainda assim está sendo mais complicado do que eu imaginei, já que a cada poucas linhas de código tenho que parar para ler umas 10 páginas de documentação até achar o que eu quero. Isso sem contar que criar os modelos me deu nó no cérebro.</p>
<p>De qualquer forma, convido a todos os meus (3) leitores a dar uma olhada no projeto e adicionar umas linhas de código nele. Criei um repositório SVN de onde você pode importar usando:</p>
<pre>svn co http://svn.linuxman.pro.br/nettrack</pre>
<p>E ainda está bem crú, mas logo dou uma incrementada no <a href="http://trac.linuxman.pro.br">Trac</a>.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/django" title="django" rel="tag">django</a>, <a href="http://geek.linuxman.pro.br/tag/nettrack" title="nettrack" rel="tag">nettrack</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/trac" title="trac" rel="tag">trac</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/nettrack/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Eu, programador</title>
		<link>http://geek.linuxman.pro.br/geek/eu-programador</link>
		<comments>http://geek.linuxman.pro.br/geek/eu-programador#comments</comments>
		<pubDate>Fri, 10 Jul 2009 01:20:30 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[emprego]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[trabalho]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1164</guid>
		<description><![CDATA[O título oficial no trabalho é &#8220;Senior Systems Administrator&#8221; e tenho gasto mais de 80% do meu tempo nesse primeiro mês automatizando coisas. Fato: Eu sou preguiçoso pra cacete e odeio trabalho repetitivo. Logo, automatizar é preciso. As coisas que automatizei eu raramente precisaria fazer eu mesmo, já que tem o pessoal mais júnior pra [...]]]></description>
			<content:encoded><![CDATA[<p>O título oficial no trabalho é &#8220;Senior Systems Administrator&#8221; e tenho gasto mais de 80% do meu tempo nesse primeiro mês automatizando coisas.</p>
<p>Fato: Eu sou preguiçoso pra cacete e <strong>odeio</strong> trabalho repetitivo. Logo, automatizar é preciso. As coisas que automatizei eu raramente precisaria fazer eu mesmo, já que tem o pessoal mais júnior pra fazer. Porém se eles estiverem fazendo esse trabalho chato e tedioso, outras coisas chatas e tediosas iam sobrar pra mim. E projeto, que é legal, vai ficando pra depois. Entenderam onde quero chegar? <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p>O problema é que a empresa é pequena. Com 2 semanas de casa automatizando coisas já corria o boato que &#8220;o cara novo manja muito de script&#8221;. E ai, <a href="http://www.dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/20000/4000/300/24384/24384.strip.print.gif">como diria o Dilbert</a>, bate a maldição de ser competente.</p>
<p>90% dos negócios da empresa estão em cima do principal software, logo tem uma equipe de desenvolvedores que é praticamente metade dos funcionário da empresa. E eles estão atolados até a alma de coisa para fazer. Mas surgiu uma necessidade urgente (uns 3 meses atrás) de fazer parse em uns arquivos para analisar os dados e até então ninguém tinha nem olhado. E deram previsão de mais 6 meses antes de ter tempo de olhar.</p>
<p>O gerente de contas do cliente então chega pro cara novo (aka esse que vos fala) e pede: Será que você pode dar uma olhada? Hum&#8230; desenferrujei um pouco do Python e fiz o treco pro nego. A lógica é de pobre, mas é limpinha. <a href="http://desciclo.pedia.ws/wiki/POG">Funciona e é o que interessa</a>.</p>
<p>Mas e ai? Ai que ele ficou tão feliz que foi falar com o meu chefe se ele não me &#8220;emprestava&#8221; pra expandir o projeto, fazer sistema de relatorio, analise anti-fraude, transferência de arquivo&#8230;</p>
<p>Resumindo&#8230; caiu a casa pro meu lado. Vou passar um bom tempo agora em projeto de desenvolvimento. Mas eu vou armado, parceiro. E de farda preta:</p>
<div id="attachment_1165" class="wp-caption aligncenter" style="width: 392px"><a href="http://www.python.org"><img class="size-full wp-image-1165" title="Python" src="http://geek.linuxman.pro.br/wp-content/uploads/2009/07/black_python.jpg" alt="black_python" width="382" height="230" /></a><p class="wp-caption-text">Python</p></div>
<p style="text-align: center;">
<p>Meus caros leitores desenvolvedores, se preparem&#8230; porquê vou encher o saco de vocês com perguntas. Posso não ser programador, mas conheço um monte deles. E, pelo menos eu espero, vou conseguir tocar um projeto inteiro sozinho. Quem diria&#8230; Eu, programador. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/developer" title="developer" rel="tag">developer</a>, <a href="http://geek.linuxman.pro.br/tag/emprego" title="emprego" rel="tag">emprego</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/scripts" title="scripts" rel="tag">scripts</a>, <a href="http://geek.linuxman.pro.br/tag/sysadmin" title="sysadmin" rel="tag">sysadmin</a>, <a href="http://geek.linuxman.pro.br/tag/trabalho" title="trabalho" rel="tag">trabalho</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/eu-programador/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Desafio do Beakman</title>
		<link>http://geek.linuxman.pro.br/geek/desafio-do-beakman</link>
		<comments>http://geek.linuxman.pro.br/geek/desafio-do-beakman#comments</comments>
		<pubDate>Tue, 16 Jun 2009 01:43:29 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1123</guid>
		<description><![CDATA[Lembram do Beakman?  uhauhauhauha&#8230; Eu cai na seguinte situação: Tenho um número X de servidores que tem um usuário que eu posso utilizar para dar login. Existem 4 senhas possíveis para este usuário, mas eu não sei qual senha está em qual servidor, de forma que eu tenho que ir tentando até conseguir quando tento [...]]]></description>
			<content:encoded><![CDATA[<p>Lembram do <a href="http://en.wikipedia.org/wiki/Beakman%27s_World">Beakman</a>?  uhauhauhauha&#8230;</p>
<p>Eu cai na seguinte situação: Tenho um número X de servidores que tem um usuário que eu posso utilizar para dar login. Existem 4 senhas possíveis para este usuário, mas eu não sei qual senha está em qual servidor, de forma que eu tenho que ir tentando até conseguir quando tento conectar no mesmo.</p>
<p>Depois de conseguir dar login na máquina eu tenho que virar root. Eu sei que cada servidor tem uma senha de root diferente, mas sempre que eu usar a senha de usuário X a senha de root vai ser Y, senha de usuário A, senha de root B.</p>
<p>Até o momento só consegui semi-automatizar o processo, mostrando na tela qual senha funcionou para o usuário, de forma que eu vou saber qual senha de root usar. O ideal é automatizar o login de forma que eu só precise bater o nome da máquina e já caia no prompt de root.</p>
<p>O que fiz foi:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #007800;">senhas</span>=<span style="color: #ff0000;">&quot;senha1 senha2 senha3 senha4&quot;</span>
&nbsp;
<span style="color: #007800;">SERVER</span>=<span style="color: #007800;">$1</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span> senha <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #007800;">$senhas</span>
<span style="color: #000000; font-weight: bold;">do</span>
    <span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">SSHPASS</span>=<span style="color: #007800;">$senha</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Tentando <span style="color: #007800;">$senha</span>&quot;</span>
    sshpass <span style="color: #660033;">-e</span> <span style="color: #c20cb9; font-weight: bold;">ssh</span> user<span style="color: #000000; font-weight: bold;">@</span><span style="color: #007800;">$SERVER</span>
    <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$?</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #7a0874; font-weight: bold;">exit</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p>O <a href="http://tarzxvf.com/">Pascal</a> me sugeriu o <a href="http://www.lag.net/paramiko/">paramiko</a>, mas acho que ele não tem a funcionalidade de me entregar o prompt de comando. Estou tentando também usar o Pexpect, mas sem muita sorte.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/bash" title="bash" rel="tag">bash</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/scripts" title="scripts" rel="tag">scripts</a>, <a href="http://geek.linuxman.pro.br/tag/ssh" title="ssh" rel="tag">ssh</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/desafio-do-beakman/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Zimbra Collaboration Suite</title>
		<link>http://geek.linuxman.pro.br/geek/zimbra-collaboration-suite</link>
		<comments>http://geek.linuxman.pro.br/geek/zimbra-collaboration-suite#comments</comments>
		<pubDate>Fri, 17 Apr 2009 12:06:15 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[CLI]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[zimbra]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=920</guid>
		<description><![CDATA[Estamos analisando algumas possibilidades de collaboration suites aqui pra empresa e um dos mais fortes canditatos até o momento é o Zimbra. É uma suite com lice[cs]iamento duplo, com uma versão open-source utilizando Yahoo! Public License (ah, sim&#8230; o Zimbra pertence ao Yahoo!) e uma versão comercial. Desta forma o core do projeto é aberto [...]]]></description>
			<content:encoded><![CDATA[<p>Estamos analisando algumas possibilidades de collaboration suites aqui pra empresa e um dos mais fortes canditatos até o momento é o Zimbra.</p>
<p>É uma suite com lice[cs]iamento duplo, com uma versão open-source utilizando Yahoo! Public License (ah, sim&#8230; o Zimbra pertence ao Yahoo!) e uma versão comercial. Desta forma o <em>core</em> do projeto é aberto e as modificações mais interessantes para as empresas são fechadas. Um modelo que eu gosto.</p>
<p><a href="http://www.zimbra.com"><img class="aligncenter size-full wp-image-921" title="zimbra_logo" src="http://geek.linuxman.pro.br/wp-content/uploads/2009/04/zimbra_logo.png" alt="zimbra_logo" width="170" height="50" /></a></p>
<p>Nas últimas semanas, mesmo ainda estando rodando apenas um piloto, fomos bem atendidos pelo suporte técnico, pelo gerente de vendas e até por um senior engineer, que me ajudou a a fazer o sizing do hardware.</p>
<p>Já temos o Zimbra instalado numa faculdade associada, <a href="http://geek.linuxman.pro.br/geek/ainda-nao-consigo-acostumar">cuja migração comentei recentemente</a>, e lá descobrimos um bug no outlook connector. Seguindo o modelo open-source utilizei o bugzilla deles, onde alguém já havia reportado o problema, votei no bug, descrevi o problema e eles reproduziram localmente, arrumaram o código e já colocaram no CVS pra sair no próximo release da suite. Sensacional. Experimenta tentar isso com a Microsoft &#8211; cuja suite, o Exchange, também estamos analisando.</p>
<p>Entre as features que me atraíram para o Zimbra está a CLI deles. Tudo pode ser feito via shell e, consequentemente, tudo pode ser automatizado ou transformado em script.  Nossos usuários vão ser provisionado à partir de uma base LDAP e não precisei mais do que uns 30 minutos para fazer um script em Python pra fazer isso.</p>
<p>Não que a interface de administração seja ruim, mas pra que usar mouse se posso usar só o teclado?</p>
<p>Ainda estamos analisando outras possiblidades, mas até o momento o Zimbra parece ser um forte candidato e se você está procurando uma ferramenta de colaboração de qualidade, por um preço razoavelmente bom (não muito mais barato do que um Exchange na verdade) e com bastante facilidade para administrar vale a pena analisar o Zimbra.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/cli" title="CLI" rel="tag">CLI</a>, <a href="http://geek.linuxman.pro.br/tag/collaboration" title="collaboration" rel="tag">collaboration</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/zimbra" title="zimbra" rel="tag">zimbra</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/zimbra-collaboration-suite/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Se as linguagens de programação fossem religiões</title>
		<link>http://geek.linuxman.pro.br/geek/se-as-linguagens-de-programacao-fossem-religioes</link>
		<comments>http://geek.linuxman.pro.br/geek/se-as-linguagens-de-programacao-fossem-religioes#comments</comments>
		<pubDate>Wed, 17 Dec 2008 15:15:41 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[cobol]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=591</guid>
		<description><![CDATA[Deu no /. : C seria Judaismo: É antiga e restritiva, mas a maior parte do mundo está familiarizada com suas leis e as respeita. A pegadinha é que você não pode se converter para ela &#8211; ou está lá desde o início ou vai pensar que é insanidade pura. Além disso, quando as coisas [...]]]></description>
			<content:encoded><![CDATA[<p>Deu no <a href="http://slashdot.org">/.</a> :</p>
<p>C seria Judaismo: É antiga e restritiva, mas a maior parte do mundo está familiarizada com suas leis e as respeita. A pegadinha é que você não pode se converter para ela &#8211; ou está lá desde o início ou vai pensar que é insanidade pura. Além disso, quando as coisas dão errado, muitas pessoas estão dispostas a colocar nela todos os problema do mundo.</p>
<p>O texto completo, em inglês, <a href="http://www.aegisub.net/2008/12/if-programming-languages-were-religions.html">aqui</a>.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/c" title="c" rel="tag">c</a>, <a href="http://geek.linuxman.pro.br/tag/cobol" title="cobol" rel="tag">cobol</a>, <a href="http://geek.linuxman.pro.br/tag/perl" title="perl" rel="tag">perl</a>, <a href="http://geek.linuxman.pro.br/tag/programming" title="programming" rel="tag">programming</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/ruby" title="ruby" rel="tag">ruby</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/se-as-linguagens-de-programacao-fossem-religioes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Esse IP veio de onde?</title>
		<link>http://geek.linuxman.pro.br/codes/esse-ip-veio-de-onde</link>
		<comments>http://geek.linuxman.pro.br/codes/esse-ip-veio-de-onde#comments</comments>
		<pubDate>Fri, 28 Nov 2008 13:49:24 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[codes]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[scripts]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=555</guid>
		<description><![CDATA[Você já deve ter olhado alguma vez nos seus logs, visto algum IP fazendo algo que lhe chamou a atenção, mas o reverso não resolve e você fica curioso de onde diacho vem esse nego. Para facilitar minha busca fiz um script que disponibilizo aqui para quem tiver interesse. Além do script vai precisar também [...]]]></description>
			<content:encoded><![CDATA[<p>Você já deve ter olhado alguma vez nos seus logs, visto algum IP fazendo algo que lhe chamou a atenção, mas o reverso não resolve e você fica curioso de onde diacho vem esse nego.</p>
<p>Para facilitar minha busca fiz um script que disponibilizo aqui para quem tiver interesse.</p>
<p>Além do <a href="http://geek.linuxman.pro.br/arquivos/ip-country.txt">script</a> vai precisar também do arquivo contendo a lista de IP vs País que pode ser baixado <a href="http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip">aqui</a>.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/internet" title="internet" rel="tag">internet</a>, <a href="http://geek.linuxman.pro.br/tag/network" title="network" rel="tag">network</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/scripts" title="scripts" rel="tag">scripts</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/codes/esse-ip-veio-de-onde/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>checkout</title>
		<link>http://geek.linuxman.pro.br/codes/checkout</link>
		<comments>http://geek.linuxman.pro.br/codes/checkout#comments</comments>
		<pubDate>Tue, 21 Oct 2008 17:35:37 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[codes]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=493</guid>
		<description><![CDATA[À medida que você precisa administrar mais e mais servidores, cada um rodando seus serviços e daemons específicos fica mais complicado saber o que está em casa máquina. Pior ainda quando você precisa que alguém com menos experiência ou conhecimento (aka suporte nível 1) verifique para você o estado do servidor. A idéia é então [...]]]></description>
			<content:encoded><![CDATA[<p>À medida que você precisa administrar mais e mais servidores, cada um rodando seus serviços e daemons específicos fica mais complicado saber o que está em casa máquina.</p>
<p>Pior ainda quando você precisa que alguém com menos experiência ou conhecimento (aka suporte nível 1) verifique para você o estado do servidor.</p>
<p>A idéia é então centralizar essa checagem num único script, simples e funcional, para facilitar a sua vida e a dos outros admins.</p>
<p>Tenho certeza que já existem por ai trocentos scripts/programas/whatever para fazer isso, mas eu estava entediado e precisava usar um pouco de Perl para não enferrujar completamente (É&#8230; ando usando só Python e Bash).</p>
<p>O script <a href="http://geek.linuxman.pro.br/arquivos/checkout">está disponível aqui</a> e está bem documentado e é de simples entendimento.</p>
<p>Basta criar um arquivo /etc/checks.txt contendo o que você esperaria ver rodando normalmente e está feito.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/bash" title="bash" rel="tag">bash</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/perl" title="perl" rel="tag">perl</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/servidor" title="servidor" rel="tag">servidor</a>, <a href="http://geek.linuxman.pro.br/tag/solaris" title="solaris" rel="tag">solaris</a>, <a href="http://geek.linuxman.pro.br/tag/sysadmin" title="sysadmin" rel="tag">sysadmin</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/codes/checkout/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mordomo virtual</title>
		<link>http://geek.linuxman.pro.br/geek/mordomo-virtual</link>
		<comments>http://geek.linuxman.pro.br/geek/mordomo-virtual#comments</comments>
		<pubDate>Wed, 15 Oct 2008 19:31:36 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[jabber]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[xmpp]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=480</guid>
		<description><![CDATA[Você, assim como eu, já criou trocentos scripts para facilitar sua vida? Todos eles cuidadosamente colocados em um servidor ou numa workstation de acordo com suas necessidades? Tudo rodando lindo e sua vida é fácil. Ai te ligam no meio do seu final de semana na praia precisando que você faça alguma coisa e adivinhe: [...]]]></description>
			<content:encoded><![CDATA[<p>Você, assim como eu, já criou trocentos scripts para facilitar sua vida? Todos eles cuidadosamente colocados em um servidor ou numa workstation de acordo com suas necessidades? Tudo rodando lindo e sua vida é fácil.</p>
<p>Ai te ligam no meio do seu final de semana na praia precisando que você faça alguma coisa e adivinhe: Tudo que você tem é um acesso tosco do hotel, que permite apenas HTTP no seu laptop. Ou ainda pior: Você não tem laptop e seu único acesso é numa lanhouse ruim, que te permite apenas abrir o IE6 e nem pensar em instalar o <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/">putty</a>.</p>
<p>Como seria bom um estagiário, um auxilar ou um mordomo para resolver a sua vida.</p>
<p>Pois seus problemas se acabaram-se!</p>
<p>Usando o <a href="http://thpinfo.com/2007/python-jabberbot/">JabberBot</a>, que é uma implementação de um robô Jabber baseado em Python, você pode fazer um bocado de coisa interessante.</p>
<p>Dê uma olhada lá e use a imaginação para criar as funcionalidades que quiser.</p>
<p>Olha o meu ai:</p>
<p><img class="aligncenter" src="http://geek.linuxman.pro.br/images/jabberbot.jpg" alt="" width="791" height="753" /></p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/jabber" title="jabber" rel="tag">jabber</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/scripts" title="scripts" rel="tag">scripts</a>, <a href="http://geek.linuxman.pro.br/tag/servidor" title="servidor" rel="tag">servidor</a>, <a href="http://geek.linuxman.pro.br/tag/sysadmin" title="sysadmin" rel="tag">sysadmin</a>, <a href="http://geek.linuxman.pro.br/tag/xmpp" title="xmpp" rel="tag">xmpp</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/mordomo-virtual/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>UFW Log Parser</title>
		<link>http://geek.linuxman.pro.br/geek/ufw-log-parser</link>
		<comments>http://geek.linuxman.pro.br/geek/ufw-log-parser#comments</comments>
		<pubDate>Sat, 06 Sep 2008 16:26:24 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[syslog]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ufw]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=425</guid>
		<description><![CDATA[Vou começar este post deixando uma coisa bem clara: Eu não sou programador. Sou apenas um sysadmin metido a besta que gosta de fazer uns scripts de vez em quando. No meu antigo emprego eu fazia muitos, mas sempre para aplicações específicas, que não teriam uso para mais ninguém fora da empresa. Mas no atual [...]]]></description>
			<content:encoded><![CDATA[<p>Vou começar este post deixando uma coisa bem clara: Eu não sou programador.</p>
<p>Sou apenas um sysadmin metido a besta que gosta de fazer uns scripts de vez em quando. No meu antigo emprego eu fazia muitos, mas sempre para aplicações específicas, que não teriam uso para mais ninguém fora da empresa.</p>
<p>Mas no atual emprego estou fazendo coisas mais genéricas e resolvi compartilhar este script que fiz estes dias. Ainda está bem verde e mostra claramente minha falta de <em>finesse</em> como programador.</p>
<p>Se você utiliza Ubuntu e tem o UFW ativado já deve ter reparado que os logs que ele gera não são exatamente fáceis de ler. Nada que um bando de pipes, greps, seds e cuts encadeados não resolva, mas como o UFW em si é feito em Python e eu ando querendo melhorar meus conhecimentos nesta linguagem, resolvi fazer meu parser também em Python.</p>
<p>Se alguém eventualmente baixar e usuar este treco, depois me fala o que achou e me mande patches. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Download <a href="http://geek.linuxman.pro.br/arquivos/ulog">aqui</a>.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/firewall" title="firewall" rel="tag">firewall</a>, <a href="http://geek.linuxman.pro.br/tag/log" title="log" rel="tag">log</a>, <a href="http://geek.linuxman.pro.br/tag/parser" title="parser" rel="tag">parser</a>, <a href="http://geek.linuxman.pro.br/tag/python" title="python" rel="tag">python</a>, <a href="http://geek.linuxman.pro.br/tag/syslog" title="syslog" rel="tag">syslog</a>, <a href="http://geek.linuxman.pro.br/tag/ubuntu" title="ubuntu" rel="tag">ubuntu</a>, <a href="http://geek.linuxman.pro.br/tag/ufw" title="ufw" rel="tag">ufw</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/ufw-log-parser/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

