<?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; sysadmin</title>
	<atom:link href="http://geek.linuxman.pro.br/tag/sysadmin/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>Google Apps Enterprise</title>
		<link>http://geek.linuxman.pro.br/geek/google-apps-enterprise</link>
		<comments>http://geek.linuxman.pro.br/geek/google-apps-enterprise#comments</comments>
		<pubDate>Fri, 06 May 2011 00:02:41 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[exchage]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[zimbra]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1557</guid>
		<description><![CDATA[Tem pesadelo maior pra um sysadmin Unix do que ter que dar manutenção em servidor Windows? Sim! Dar manutenção em um servidor Exchange, obviamente rodando num servidor Windows. E ainda por cima ser um servidor só, 2003, e começar a ter requerimentos de múltiplos domínios. E aliases externos e tudo mais aquilo que é mamão-com-açúcar usando [...]]]></description>
			<content:encoded><![CDATA[<p>Tem pesadelo maior pra um sysadmin Unix do que ter que dar manutenção em servidor Windows? Sim! Dar manutenção em um servidor Exchange, obviamente rodando num servidor Windows. E ainda por cima ser um servidor só, 2003, e começar a ter requerimentos de múltiplos domínios. E aliases externos e tudo mais aquilo que é mamão-com-açúcar usando um Postfix.</p>
<p>Mas não basta remover o Exchange. Minha impressão é que se o e-mail é a ferramenta número um usada na empresa o calendário é a número dois. Ah, sim&#8230; BlackBerry. Tem que sincronizar com essa criatura. E iPhone. E Android. Sim: O email e o calendário. E nem ouse perder os contatos. Devem sincronizar e estar sempre disponíveis.</p>
<p>Ai ferrou, né? Basicamente consegui pensar só em um servidor alternativo ao Exchange: Zimbra. É sensacional e já usei antes. Mas cá entre nós: Eu já tenho tanto trampo e minha equipe foi reduzida recentemente com um dos técnicos pulando pro time de vendas. Que tal passar o problema pra outro?</p>
<p>Pesquisei um pouco e por coincidência fui contactado por um empresa parceira do Google quase ao mesmo tempo e partimos pro Google Enterprise com direito a Postini e tudo.</p>
<p>Não foi nem de longe a migração simples e suave que eu planejava e o fato de ter múltiplos domínios sendo migrados em datas diferentes fez a coisa ficar ainda mais complicada. Mas o que mais me impressionou mesmo é a resistência a mudança que as pessoas tem.</p>
<p>Mesmo com todas as maravilhosas features disponíveis na interface web do Gmail cerca de 90% da minha base de usuários pediu pra que o Outlook fosse configurado. Literalmente meia dúzia de pessoas abraçou a interface web. O que, na minha opinião, é ridículo.</p>
<p>No lado da migração já fica a dica pra quem for pelo mesmo caminho: Esquece a opção de deixar os usuários migrarem seus próprios emails: A ferramenta é um lixo, trava o diversas vezes e é incrivelmente lenta. Vá direto pra opção de migrar direto do Exchange pro Gmail e seja feliz. Esse foi meu principal erro&#8230; Quis deixar meus usuários migrarem seus emails (menos problema pra mim, né?) e foi um tiro no pé. Tive um dia do cão ouvindo xingos variados, a internet ficou uma carroça (todos os usuários tentando subir suas várias centenas de MBs de emails ao mesmo tempo) e logo de cara causou uma imensa má impressão do produto que deve durar ainda por um bom tempo.<br />
No final acabei tendo que migrar (ou re-migrar, se isso existe) quase todo mundo usando o Exchange.</p>
<p>E minhas aventuras de migração estão longe de terminar. Se você anda se perguntando porquê não apareço mais no Google Talk nem no Twitter e nem aqui no blog fica aqui minha lista de projetos em andamento:</p>
<ul>
<li>Migrar minha server farm (produção) para um Data Center (atualmente temos nosso próprio mini-DC) até o final de Junho</li>
<li>Coordenar a mudança (aka montar a infra-estrutura) para a nova sede da empresa até o final de Julho</li>
<li>Adquirir novo sistema de PABX para a nova localidade (acima) até o começo de Junho</li>
</ul>
<p>E nem estou contando coisas &#8220;pequenas&#8221; tipo migrar um cliente de grande porte de self-hosted para SaaS nesse final de semana.</p>
<p>Vou apenas dizer que ando bem cansado&#8230;</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/exchage" title="exchage" rel="tag">exchage</a>, <a href="http://geek.linuxman.pro.br/tag/gmail" title="gmail" rel="tag">gmail</a>, <a href="http://geek.linuxman.pro.br/tag/google" title="google" rel="tag">google</a>, <a href="http://geek.linuxman.pro.br/tag/sysadmin" title="sysadmin" rel="tag">sysadmin</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/google-apps-enterprise/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sysadmin 201</title>
		<link>http://geek.linuxman.pro.br/geek/sysadmin-201</link>
		<comments>http://geek.linuxman.pro.br/geek/sysadmin-201#comments</comments>
		<pubDate>Mon, 22 Nov 2010 11:00:09 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[trabalho]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1506</guid>
		<description><![CDATA[Agora que você já entendeu os pré-requisitos e os pontos negativos e positivos de ser um sysadmin (contando que tenha lido o Sysadmin 101) aqui vão algumas idéias do que buscar tecnicamente. Recebi um bocado de feedback de outros sysadmins sobre o post anterior via twitter ou IM. Se quiserem postar aqui as respostas mais [...]]]></description>
			<content:encoded><![CDATA[<p>Agora que você já entendeu os pré-requisitos e os pontos negativos e positivos de ser um sysadmin (contando que tenha lido o <a href="http://geek.linuxman.pro.br/geek/sysadmin-101">Sysadmin 101</a>) aqui vão algumas idéias do que buscar tecnicamente.</p>
<p>Recebi um bocado de feedback de outros sysadmins sobre o post anterior via twitter ou IM. Se quiserem postar aqui as respostas mais gente vai poder ver. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Minha experiência pessoal é como sysadmin de redes (na época basicamente com equipamentos Cisco) e com Linux/Unix. Mas certeza que a idéia geral serve pra quem pensa em seguir carreirar como Sysadmin Microsoft, Oracle ou qualquer outra variação.</p>
<p>Já pegando o gancho aqui vale a pena citar o seguinte: Quanto mais especializado você for melhor você vai ganhar e menor vai ser o mercado de trabalho.</p>
<p>Explicando: Não tem muitos sysadmins especializados em deployment de super-computadores híbridos para análise meteorológica. Esses caras ganham uma boa grana. Mas em compensação quantos super-computadores tem por ai? Você precisa se decidir o quão especialista quer ser e definir seu plano de carreira.</p>
<p>Independente de que tipo de sysadmin que deseja ser existem algumas coisas que, no meu ponto de vista, são extremamente básicas e já vi muito nego que dá carteirada com certificação passando de otário por não saber o básico.</p>
<h2>Redes</h2>
<p>IMHO a primeira coisa a se saber é redes. TCP/IP. Não perca tempo com outras tecnologias se não pretende ser sysadmin de rede. (Vale ressaltar aqui que eu estou em dívida comigo mesmo por ainda não ter estudado IPv6 à fundo).</p>
<p>A impressão que eu tenho é que um sysadmin que não sabe rede é como um médico que não sabe dividir o corpo humano em cabeça, tronco e membros. Mas acredite, isso acontece direto. Quando eu trabalhava com redes era ocorrência diária o time de Windows ou Unix mandar chamados de &#8220;problema de rede&#8221; dizendo que o serviço X ou Y não estava acessível, mas &#8220;o servidor está OK&#8221;.</p>
<p>Não precisava mais do que 5 minutos de troubleshooting pra descobrir que o serviço não estava rodando, que estava dando connection refused, o processo dava reset na conexão ou outra coisa qualquer, totalmente não-relacionada a rede. Faça um favor para você mesmo e evite pagar de otário aprendendo a utilizar ping, netstat, route.</p>
<p>E sysadmins Microsoft em geral parecem ter um especial dificuldade em entender o conceito de &#8220;default gateway&#8221;. Então se você for trabalhar com MS e souber isso, já largou na frente. <img src='http://geek.linuxman.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Troubleshooting</h2>
<p>E falando em troubleshooting eu deveria ter começado é com isso. Capacidade de efetuar troubleshooting é simplesmente a mais importante qualidade na vida de um sysadmin.  E eu penso que &#8220;troubleshooting skills&#8221; nada mais é do que apenas um nome chique pra &#8220;bom-senso&#8221;, então todo mundo deveria ter, mas 30 segundos na Internet me mostram que isso não é bem verdade.</p>
<p>Apesar de ser uma coisa que eu considero como um talento nato o mesmo com certeza pode e deve ser melhorado. Ao invés de fugir de problemas encare-os de frente e tente resolver todo tipo de pepino que aparecer na sua frente. Faça uma Wiki pessoal utilizando algo como o <a href="http://notebook.google.com">Google Notebook</a> ou <a href="http://www.tiddlywiki.com/">TiddlyWiki</a> e mantenha registro de como solucionou problemas. Estude estratégias de resolução de problemas, como a minha favorita <a href="http://en.wikipedia.org/wiki/Divide_and_conquer_algorithm">Divide and Conquer</a>, e lembre-se sempre que você não é tão especial quanto você acha. Grandes chances de alguém já ter tido o mesmo problema que você está tendo. E nesse caso o Google é seu amigo. Aliás, seguindo o link que o <a href="http://blog.andreyev.net/2010/11/sysadmin-1011.html">Andreyev postou aqui</a>, <a href="http://www.googleguide.com/advanced_operators_reference.html">aprenda a usar o Google direito</a>!</p>
<h2>As bases</h2>
<p>Então considerando que você já está OK com os dois pontos anteriores, vamos falar da sua área de atuação. E aqui vou usar meu exemplo pessoal como sysadmin Linux.</p>
<p>Antes de sair por ai assinando seu email como sysadmin e <a href="http://br.groups.yahoo.com/group/shell-script/message/32123">tomar uma bofetada como essa</a>, conheça muito bem as bases e raízes do sistema. Saiba a diferença entre sistemas derivados de <a href="http://en.wikipedia.org/wiki/UNIX_System_V">System V</a> e <a href="http://en.wikipedia.org/wiki/BSD">BSD</a>, <a href="http://www.oreillynet.com/linux/cmd/">leia e aprenda</a> a maior quantidade de comandos que conseguir.</p>
<p>Conheça a <a href="http://en.wikipedia.org/wiki/Unix_directory_structure">estrutura de diretórios Unix</a> e o <a href="http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard">Filesystem Hierarchy Standard</a> .</p>
<p>Deixe de ser fan-boy de distribuição, já que um bom sysadmin Linux deve ser capaz de sentar na frente de um console, determinar que distribuição está rodando e sair trabalhando. E sim, Ubuntu é lindo, fácil de instalar e cheio de aplicações (eu mesmo uso), mas o fato de você ter ele instalado em dual-boot no seu micro de casa a 6 meses não te qualifica como sysadmin.</p>
<p>Hoje em dia sou preguiçoso, mas no passado já fui mais ativo e perdi as contas de quais distribuições usei. Cheguei a ter uma máquina de teste onde toda semana eu instalava algo diferente, como <a href="http://en.wikipedia.org/wiki/TurboLinux">TurboLinux</a> e <a href="http://en.wikipedia.org/wiki/Progeny_Linux_Systems">Progeny</a>. Sempre um exercício interessante.</p>
<p>Considere usar algo um pouco mais baixo-nível por um tempo, como <a href="http://www.slackware.com/">Slackware</a> ou <a href="http://www.gentoo.org/">Gentoo</a>, mas do ponto de vista comercial preocupe-se mesmo com <a href="http://www.redhat.com">RedHat</a>, <a href="http://www.novell.com/home/">SuSE</a> e <a href="http://www.ubuntu.com">Ubuntu</a>. Aliás, minha experiência corporativa até o momento diz que a RedHat reina absoluta. Estudar essa distribuição em particular é interessante. Use o <a href="http://www.centos.org/">CentOS</a> caso, como eu, não tenha US $800 sobrando pra comprar uma licença.</p>
<p>Aprenda a compilar um kernel, compilar pacotes, utilizar gerenciadores de pacotes, e instalar módulos do Perl ou Ruby via CPAN ou Gem.</p>
<p>Por favor, aprenda permissões e saiba parâmetros do chown e chmod. Utilizar o sudoers e saber da existência do /etc/securetty também não machuca ninguém. Não rele no /etc/passwd via editor de texto, mas se realmente não tiver outra opção utilize o vipw!</p>
<h2>Scripting</h2>
<p>Fato: Mais cedo ou mais tarde você vai precisar criar um script pra alguma coisa. Por isso aprenda shell script muito bem. Eu diria que é um diferencial excelente na hora de procurar emprego. Mas nada de aprender mais ou menos e sair cantando de galo por ai. Saber fazer um &#8220;pipe grépe&#8221; não é escrever shell script.</p>
<p>E uma coisa que acompanha shell script tão bem quanto café acompanha leite é expressão regular. Poucos sysadmins conhecem regex e a vida é MUITO, MUITO mais fácil com ela.</p>
<p>E se quiser ir um pouco mais fundo (dica: sempre queira), aprender um outra linguagem mais complexa é sempre interessante. Pessoalmente escolhi Python, mas conheço também um pouco de Perl e gostaria muito de ter tempo pra estudar Ruby. Essas linguagens mais complexas e cheias de recursos podem acabar facilitando sua vida reduzindo a quantidade de código que precisaria para fazer a mesma coisa em Bash, por exemplo.</p>
<p>E aqui vale enfatizar: Não invente moda. Nada de criar um script gigante e cheio de frescura se puder resolver o problema só um find -exec.</p>
<h2>Seja preguiçoso</h2>
<p>Isso mesmo. Pense sempre o seguinte: Como eu consigo executar essa tarefa com o menor esforço possível? Ou então: Como eu posso automatizar essa atividade pra não precisar fazer isso todo dia? E ainda: O que eu posso fazer pra parar de ter esse problema e nego me enchendo o saco todo fim do mês?</p>
<p>Lembre-se que o at, a crontab ou outros schedulers são seus amigos. Criar um daemonzinho utilizando um shell script também pode ser uma saída para algumas coisas.</p>
<p>E caso precise fazer algo que realmente não possa ser 100% automatizado faça uma excelente documentação do processo e deixe em algum lugar disponível para consulta não só sua como de qualquer outro colega. Assim a próxima vez o processo pode passar para mãos mais inexperientes ou simplesmente pra quem estiver disponível. Não precisa ser necessariamente você.</p>
<p>E por falar em preguiça, por hoje chega.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/cisco" title="cisco" rel="tag">cisco</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/network" title="network" rel="tag">network</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>, <a href="http://geek.linuxman.pro.br/tag/unix" title="unix" rel="tag">unix</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/sysadmin-201/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Brasileiros em todos os cantos (de IT)</title>
		<link>http://geek.linuxman.pro.br/geek/brasileiros-em-todos-os-cantos-de-it</link>
		<comments>http://geek.linuxman.pro.br/geek/brasileiros-em-todos-os-cantos-de-it#comments</comments>
		<pubDate>Mon, 25 Oct 2010 22:53:28 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[amanda]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[brasil]]></category>
		<category><![CDATA[Canada]]></category>
		<category><![CDATA[dell]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[zmanda]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1475</guid>
		<description><![CDATA[Ano passado implementamos Zmanda como nossa solução de backup. Nada mais é do que o Amanda com front-end bacana e suporte enterprise, o que eu acho ótimo (e fui eu que recomendei a solução deles). o Zmanda está instalado num servidor PowerEdge da Dell rodando numa tape library também da Dell. Infelizmente eu caí na [...]]]></description>
			<content:encoded><![CDATA[<p>Ano passado implementamos Zmanda como nossa solução de backup. Nada mais é do que o Amanda com front-end bacana e suporte enterprise, o que eu acho ótimo (e fui eu que recomendei a solução deles).</p>
<p>o Zmanda está instalado num servidor PowerEdge da Dell rodando numa tape library também da Dell.</p>
<p>Infelizmente eu caí na besteira de deixar o sysadmin júnior responsável pelo backup por um bom tempo e descobri que tinha uma monte de cagada no sistema e apesar de ter conseguido arrumar a maior parte precisei entrar contato com o suporte do Zmanda. Chega o email de resposta deles assinado por um Eduardo Kazuo Miyazaki. Pô&#8230; nome mais brasileiro que esse só se o cara chamasse José da Silva. Pesquisa no Linkedn e batata.</p>
<p>Parte dos problemas resolvidos descobri que o backup não estava sendo mandado pra tape library por algum problema de hardware. Como eu estava de férias encaminhei pro pessoal do meu time e pedi pra alguém ligar na Dell.</p>
<p>Ai me respondem encaminhando o email vindo da Dell, cujo engenheiro responsável era um tal de Luiz Dunham. Escuta&#8230; Luiz com Z e sobrenome com N seguido de H só pode ser brasileiro, né? Mais uma pesquisada rápida e pá: confirmado.</p>
<p>Agora me explica quais as chances eu, brasileiro morando no Canadá, tentando resolver um problema num único sistema (backup) ligar em duas empresas diferentes nos Estados Unidos e ser atendido por um brasileiro em ambas?</p>
<p>Sensacional. Isso só mostra que nós, brasileiros, somos realmente bons nessa história de IT.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/amanda" title="amanda" rel="tag">amanda</a>, <a href="http://geek.linuxman.pro.br/tag/backup" title="backup" rel="tag">backup</a>, <a href="http://geek.linuxman.pro.br/tag/brasil" title="brasil" rel="tag">brasil</a>, <a href="http://geek.linuxman.pro.br/tag/canada" title="Canada" rel="tag">Canada</a>, <a href="http://geek.linuxman.pro.br/tag/dell" title="dell" rel="tag">dell</a>, <a href="http://geek.linuxman.pro.br/tag/sysadmin" title="sysadmin" rel="tag">sysadmin</a>, <a href="http://geek.linuxman.pro.br/tag/zmanda" title="zmanda" rel="tag">zmanda</a><br />
]]></content:encoded>
			<wfw:commentRss>http://geek.linuxman.pro.br/geek/brasileiros-em-todos-os-cantos-de-it/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Túnel SSH reverso</title>
		<link>http://geek.linuxman.pro.br/geek/tunel-ssh-reverso</link>
		<comments>http://geek.linuxman.pro.br/geek/tunel-ssh-reverso#comments</comments>
		<pubDate>Thu, 07 Oct 2010 11:30:45 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1448</guid>
		<description><![CDATA[Dica rápida e muito útil: Se você já precisou acessar um servidor Linux atrás de um NAT sobre qual você não tem controle sabe como seria bom poder iniciar a conexão do lado do servidor conectando de volta em você. Isso é possível com um túnel SSH reverso. A idéia é que o servidor que [...]]]></description>
			<content:encoded><![CDATA[<p>Dica rápida e muito útil:</p>
<p>Se você já precisou acessar um servidor Linux atrás de um NAT sobre qual você não tem controle sabe como seria bom poder iniciar a conexão do lado do servidor conectando de volta em você.</p>
<p>Isso é possível com um túnel SSH reverso. A idéia é que o servidor que você deseja acessar inicia a conexão do lado dele, conecta-se na sua máquina e disponibiliza, via túnel SSH uma porta de volta pra ele.</p>
<p><a href="http://geek.linuxman.pro.br/wp-content/uploads/2010/10/openssh.gif"><img class="aligncenter size-full wp-image-1451" title="openssh" src="http://geek.linuxman.pro.br/wp-content/uploads/2010/10/openssh.gif" alt="" width="520" height="155" /></a></p>
<p>Eu uso isso como um acesso rápido de casa para a empresa naqueles casos onde preciso só acessar rapidamente alguma coisa vinha linha de comando. Tenho acesso VPN se precisar de email, Terminal Services, etc. Seria possível fazer tudo via túnel, mas ai o desempenho não fica grandes coisas e nem é tão conveniente.</p>
<p>O comando (a ser executado do servidor atrás do NAT) é:</p>
<pre>ssh -nNT -R 2222:localhost:22 username@suamaquina</pre>
<p>Uma vez estabelecido o túnel você pode conectar de volta à partir da sua máquina utilizando:</p>
<pre>ssh -p 2222 username@localhost</pre>
<p>Como é possível que a conexão caia, o processo trave ou sei lá o que mais, recomendo os seguintes truques:</p>
<ul>
<li>Use <a href="http://www.dicas-l.com.br/arquivo/logando_com_seguranca_num_servidor_ssh_sem_uso_de_senha.php">chaves públicas para autenticação</a>, assim não precisa de senha</li>
<li>Rode a sessão inicial dentro do <a href="http://www.gnu.org/software/screen/">screen</a>, isso evita perder o console</li>
<li>Rode o túnel dentro de um loop while, pro processo poder ser restaurado caso morra</li>
<li>Pra evitar alguém te sacanear crie um usuário dedicado pra essa conexão e aponte o shell dele para /bin/false</li>
</ul>

	Tags: <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/shell" title="shell" rel="tag">shell</a>, <a href="http://geek.linuxman.pro.br/tag/ssh" title="ssh" rel="tag">ssh</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/tunel-ssh-reverso/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Multi Master Replication Manager (MMM)</title>
		<link>http://geek.linuxman.pro.br/geek/multi-master-replication-manager-mmm</link>
		<comments>http://geek.linuxman.pro.br/geek/multi-master-replication-manager-mmm#comments</comments>
		<pubDate>Sat, 02 Oct 2010 23:53:42 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mmm]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[replication]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1418</guid>
		<description><![CDATA[UPDATE: Acho que arrumei a formatação. Deve estar legível agora. !!!ATENÇÃO &#8211; A visualização de algumas sessões pode estar truncando conteúdo! Pelo jeito a tag &#60;pre&#62; tá quebrada. Preciso olhar isso, mas preguiça, né? Dá pra ler direitinho usando o RSS !!!! Mesmo com a a infra-estrutura toda virtualizada e clusterizada nos ESXi fazer um [...]]]></description>
			<content:encoded><![CDATA[<p><strong>UPDATE:</strong> Acho que arrumei a formatação. Deve estar legível agora.<br />
<strong>!!!ATENÇÃO &#8211; A visualização de algumas sessões pode estar truncando conteúdo! Pelo jeito a tag &lt;pre&gt; tá quebrada. Preciso olhar isso, mas preguiça, né? Dá pra ler direitinho usando o <a href="http://geek.linuxman.pro.br/feed">RSS</a> !!!!</strong></p>
<p>Mesmo com a a infra-estrutura toda virtualizada e clusterizada nos ESXi fazer um cluster de MySQL ainda é uma boa idéia.</p>
<p>Não só você pode colocar as duas máquinas em storages diferentes e eliminar mais um ponto de falha mas também você pode dedicar uma (ou mais) VM(s) para read-only.</p>
<p>Isso quer dizer que seus usuários rodando reports e chamando estatísticas/gráficos no meio do dia não vão afetar o desempenho de quem está entrando operações em produção.</p>
<p>Isso dito entra em cena o <a href="http://mysql-mmm.org/">MySQL Multi Master Replication Manager</a> (MMM): Um conjunto de scripts Perl que facilita a replicação e gerenciamento do seu cluster MySQL.</p>
<p>Abaixo os passos que utilizei para criar um cluster de 2 máquinas CentOS 5.5. Vou assumir que você já tem as máquinas em pé com MySQL devidamente instalado.</p>
<p>Além das máquinas rodando o MySQL você vai precisar de uma terceira, que é o monitor. É esse cara que vai manter os olhos no cluster, decidir quando uma máquina morreu e gerenciar os papéis de cada uma.</p>
<p>Nem idéia ainda dos requisitos mínimos desse servidor, visto que apenas fiz um teste pequeno aqui. Mas tá rodando sem reclamar em 1 processador e 512 de RAM.</p>
<h3>Cenário:</h3>
<p>IP Leitura/Gravação MySQL -&gt; 10.0.0.1</p>
<p>IP Somente Leitura MySQL -&gt; 10.0.0.100</p>
<p>IP Servidor MySQL 1 (hostname master) -&gt; 10.0.0.2</p>
<p>IP Servidor MySQL 2 (hostname master2) -&gt; 10.0.0.3</p>
<p>IP Monitor (hostname mon) -&gt; 10.0.0.10</p>
<p>Editando a configuração do MySQL:</p>
<p>Em cada um dos servidores adicione as seguintes linhas embaixo da sessão [mysqld] do <em>/etc/my.cnf</em>:</p>
<pre>
#MMM
read-only
replicate-ignore-db = mysql
binlog-ignore-db = mysql
log-bin=master-binary
relay-log=master-relay
server-id=2
</pre>
<div>Atenção!! master (ali no log-bin e relay-bin) é o HOSTNAME da máquina em questão. Então no meu caso no outro servidor o arquivo receberá as linhas:</div>
<pre>
<div>#MMM</div>
<div>read-only</div>
<div>replicate-ignore-db = mysql</div>
<div>binlog-ignore-db = mysql</div>
<div>log-bin=master2-binary</div>
<div>relay-log=master2-relay</div>
<div>server-id=2</div>
</pre>
<div>Isso vai evitar que mudanças sejam feitas no banco de dados mysql e também define um nome único para os logs que vamos usar mais tarde.</div>
<div>Não esqueça do restart no serviço.</div>
<h3>Instalando o MMM:</h3>
<div>Não sei vocês, mas já passei da idade de compilar pacote na mão. Eu instalo a <a href="http://fedoraproject.org/wiki/EPEL/FAQ#What_is_EPEL.3F">EPEL</a> e já era.</div>
<div>Nos servidores MySQL:</div>
<h3>
<pre>rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum -y install perl-Algorithm-Diff perl-Class-Singleton perl-DBD-MySQL perl-Log-Log4perl perl-Log-Dispatch perl-Proc-Daemon perl-MailTools
yum install mysql-mmm.noarch mysql-mmm-agent.noarch mysql-mmm-tools.noarch</pre>
</h3>
<h3>Configurando os Usuários:</h3>
<p>Dentro de cada servidor precisamos criar 3 usuários: replication, agent e monitor. Abra seu console do MySQL e mande:</p>
<pre>
<pre>GRANT REPLICATION CLIENT                 ON *.* TO 'mmm_monitor'@'10.0.0.%' IDENTIFIED BY 'monitor_password';
GRANT SUPER, REPLICATION CLIENT, PROCESS ON *.* TO 'mmm_agent'@'10.0.0.%'   IDENTIFIED BY 'agent_password';
GRANT REPLICATION SLAVE                  ON *.* TO 'replication'@'10.0.0.%' IDENTIFIED BY 'replication_password';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;</pre>
</pre>
<p>Abra duas sessões (uma em cada MySQL) e não as feche depois de rodar os comandos acima. Com eles executados faça a seguir:</p>
<pre>SHOW MASTER STATUS;</pre>
<p>E o resultado vai ser algo como:</p>
<pre>
<div id="_mcePaste">mysql&gt; SHOW MASTER STATUS;</div>
<div id="_mcePaste">+-----------------------+----------+--------------+------------------+</div>
<div id="_mcePaste">| File                  | Position | Binlog_Do_DB | Binlog_Ignore_DB |</div>
<div id="_mcePaste">+-----------------------+----------+--------------+------------------+</div>
<div id="_mcePaste">| master2-binary.000003 |       98 |              | mysql            |</div>
<div id="_mcePaste">+-----------------------+----------+--------------+------------------+</div>
<div id="_mcePaste">1 row in set (0.00 sec)</div>

mysql&gt;</pre>
<p>Você vai usar essa informação nos comandos abaixo. Note que você deve utilizar o output da execução em uma máquina no input da outra, de forma que crie uma <em>cross-reference</em> entre elas:</p>
<pre>change master to master_host = '10.0.0.3', master_user='replication', master_password='replication_password', master_log_file='master2-binary.000001', master_log_pos=98;</pre>
<p>A seguir vamos editar o <span style="font-family: arial, helvetica; line-height: 16px; font-size: 12px;"><strong>/etc/mysql-mmm/mmm_common.conf:</strong></span></p>
<pre>active_master_role      writer

&lt;host default&gt;
    cluster_interface       eth1
    pid_path                /var/run/mysql-mmm/mmm_agentd.pid
    bin_path                /usr/libexec/mysql-mmm/
    replication_user        replication
    replication_password    replication_password
    agent_user              mmm_agent
    agent_password          agent_password
&lt;/host&gt;

&lt;host master&gt;
    ip      10.0.0.2
    mode    master
    peer    master2
&lt;/host&gt;

&lt;host master2&gt;
    ip      10.0.0.3
    mode    master
    peer    master
&lt;/host&gt;

&lt;role writer&gt;
    hosts   master,master2
    ips     10.0.0.1
    mode    exclusive
&lt;/role&gt;

&lt;role reader&gt;
    hosts   master,master2
    ips     10.0.0.100
    mode    balanced
&lt;/role&gt;</pre>
<p>Este arquivo deve ser exatamente o mesmo nos dois lados do cluster!</p>
<p>E só fica faltando agora editar o <strong>/etc/mysql-mmm/mmm_agent.conf</strong>:</p>
<pre>include mmm_common.conf
this master</pre>
<div>A variável &#8220;this&#8221; indica o hostname. Portanto no meu caso o outro servidor vai ter um &#8220;this master2&#8243;</div>
<p>Com tudo isso pronto vamos no servidor de monitoramento e fazemos:</p>
<pre>rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum install mysql-mmm-monitor.noarch</pre>
<p>Copiamos nele também o <strong>/etc/mysql-mmm/mmm_common.conf.</strong></p>
<p>E depois editamos o <span style="font-family: arial, helvetica; line-height: 16px; font-size: 12px;"><strong>/etc/mysql-mmm/mmm_mon.conf:</strong></span></p>
<pre>&lt;monitor&gt;
    ip                  127.0.0.1
    pid_path            /var/run/mysql-mmm/mmm_mond.pid
    bin_path            /usr/libexec/mysql-mmm
    status_path         /var/lib/mysql-mmm/mmm_mond.status
    ping_ips            10.0.0.1,10.0.0.2,10.0.0.3,10.0.0.100
    auto_set_online     60

    # The kill_host_bin does not exist by default, though the monitor will
    # throw a warning about it missing.  See the section 5.10 "Kill Host
    # Functionality" in the PDF documentation.
    #
    # kill_host_bin     /usr/libexec/mysql-mmm/monitor/kill_host
    #
&lt;/monitor&gt;

&lt;host default&gt;
    monitor_user        mmm_monitor
    monitor_password    monitor_password
&lt;/host&gt;

debug 0</pre>
<h3>Iniciando os serviços:</h3>
<p>Nos servidores MySQL:</p>
<pre>service mysql-mmm-agent start
chkconfig mysql-mmm-agent on</pre>
<p>No servidor de monitoração:</p>
<pre>service mysql-mmm-monitor start
chkconfig mysql-mmm-monitor on</pre>
<p>Se tudo correu bem em alguns segundos você vai ter os serviços rodando e pode ver o status deles à partir do servidor de monitoração com o seguinte comando:</p>
<pre>[root@mon ~]# mmm_control show
  master(10.0.0.2) master/ONLINE. Roles: writer(10.0.0.1)
  master2(10.0.0.3) master/ONLINE. Roles: reader(10.0.0.100)</pre>
<div>Agora é só aprender mais sobre as opções do mmm_control e correr pro abraço.</div>
<h3>Referências:</h3>
<p><a href="http://www.packtpub.com/article/install-manage-use-mmm-for-mysql-high-availability http://www.packtpub.com/article/setting-up-mysql-replication-for-high-availability?utm_source=rk_mysql_cb_abr2_0510&amp;utm_medium=content&amp;utm_campaign=ramsai http://fedoraproject.org/wiki/EPEL/FAQ#What_is_EPEL.3F http://mysql-mmm.org/mmm2:guide">http://www.packtpub.com/article/install-manage-use-mmm-for-mysql-high-availability</a></p>
<p><a href="http://www.packtpub.com/article/setting-up-mysql-replication-for-high-availability?utm_source=rk_mysql_cb_abr2_0510&amp;utm_medium=content&amp;utm_campaign=ramsai">http://www.packtpub.com/article/setting-up-mysql-replication-for-high-availability?utm_source=rk_mysql_cb_abr2_0510&amp;utm_medium=content&amp;utm_campaign=ramsai</a></p>
<p><a href="http://fedoraproject.org/wiki/EPEL/FAQ#What_is_EPEL.3F">http://fedoraproject.org/wiki/EPEL/FAQ#What_is_EPEL.3F</a></p>
<p><a href="http://mysql-mmm.org/mmm2:guide">http://mysql-mmm.org/mmm2:guide</a></p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/centos" title="CentOS" rel="tag">CentOS</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/mmm" title="mmm" rel="tag">mmm</a>, <a href="http://geek.linuxman.pro.br/tag/mysql" title="mysql" rel="tag">mysql</a>, <a href="http://geek.linuxman.pro.br/tag/replication" title="replication" rel="tag">replication</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/multi-master-replication-manager-mmm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faça o que tem que ser feito</title>
		<link>http://geek.linuxman.pro.br/lifehacker/faca-o-que-tem-que-ser-feito</link>
		<comments>http://geek.linuxman.pro.br/lifehacker/faca-o-que-tem-que-ser-feito#comments</comments>
		<pubDate>Sat, 14 Aug 2010 13:49:17 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[lifehacker]]></category>
		<category><![CDATA[emprego]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[trabalho]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1413</guid>
		<description><![CDATA[Acabo de ler &#8220;Please, don&#8217;t just do what I tell you! Do what needs to be done&#8221; e recomendo. Como profissional eu sempre tento ser pró-ativo, procuro me envolver em projetos complicados que ninguém tem interesse e procuro dar o máximo de mim em todas as situações. Até o momento tenho sido bem sucedido com [...]]]></description>
			<content:encoded><![CDATA[<p>Acabo de ler &#8220;<a href="http://www.amazon.ca/Please-Dont-Just-What-Needs/dp/0786867299/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1281786915&amp;sr=1-1">Please, don&#8217;t just do what I tell you! Do what needs to be done</a>&#8221; e recomendo.</p>
<p>Como profissional eu sempre tento ser pró-ativo, procuro me envolver em projetos complicados que ninguém tem interesse e procuro dar o máximo de mim em todas as situações. Até o momento tenho sido bem sucedido com essa abordagem, mas pela primeira vez achei um livro que reflete exatamente como me comporto. E aparentemente estou no caminho certo.</p>
<p>Não sei a experiência de vocês, mas algo que me incomoda muito é ver uma coisa sendo feita de um jeito defeituoso, complicado,  caro, complexo ou demorado demais só porque sempre foi feito daquela forma. E ninguém nunca toma a iniciativa de resolver aquele problema.</p>
<p>Ah, meu amigo&#8230; Na minha mão essas coisas não duram não.</p>
<p>Eu gosto muito de aprender pelo exemplo dos outros e caso alguém ai também goste vão aqui dois exemplos de coisas simples que eu fiz no  passado que fizeram uma imensa diferença profissional no futuro.</p>
<p>A primeira foi num banco onde trabalhei. No meu segundo dia lá o sujeito que eu estava substituindo apareceu para assinar uns papéis no RH e veio conversar comigo. Falou que o principal sistema do banco (Java-based) rodava em um servidor lá num canto do CPD e que ele caia pelo menos 2 vezes por dia. Minha principal responsabilidade na empresa seria ficar de ouvido e assim que alguém gritar que o sistema caiu sair correndo, entrar na sala dos servidores e rodar uma série de uns 10 comandos no shell para restaurar o sistema.</p>
<p>Dito e feito, naquele mesmo dia antes do final do expediente caiu o maldito e toca eu correr pra arrumar. Eu nem sabia o que estava fazendo, só sei que tinha uma série de comandos a serem executados. Mas ali mesmo já fiz uma melhoria. O cara digitava todos os comandos, demorando uns 2 ou 3 minutos para recuperar o sistema. Eu comecei só apertando flecha pra cima e usando o history. Já abaixei pra um minuto, mas ainda não tinha idéia do que rolava. Nem sabia que raios era aquilo.</p>
<p>Depois de um mês mais ou menos de casa (e muitas corridas minhas e dos meus colegas pra dentro do CPD) eu comecei a entender. A aplicação feita em Java rodava em um container proprietário. Um container que o banco pagou uma fortuna para ter. E era uma versão com uns 4 ou 5 anos de idade, cheio de bug.</p>
<p>Comecei a fazer amizade com o pessoal de desenvolvimento e descobri que como ambiente de desenvolvimento cada um rodava uma instância de Tomcat no seu próprio desktop e que nenhum deles tinha os problemas que apareciam em produção.</p>
<p>Lógico que cheguei pro meu chefe e sugeri migrar para Tomcat. E lógico que a resposta foi não.</p>
<p>Bom&#8230; ai entrei no modo black-ops e sorrateiramente instalei o Tomcat no servidor, mas numa porta alternativa e deixei rodando, sem ninguém acessando, por uns 2 ou 3 dias. Depois conversei com uns usuários que trabalhavam no meu andar e alterei o bookmark deles para acessar a minha instância do Tomcat por padrão ao invés do default. E eles rodaram felizes e sem quedas por mais de semana.</p>
<p>Nisso eu já me preparei, arrumei uns scripts num canto e numa segunda-feira assim que o sistema default caiu eu subi o Tomcat no lugar dele. Sem dó nem piedade.</p>
<p>Ao invés de cair 2 vezes por dia o sistema passou a cair só 2 vezes por semana. Rodando mais rápido e bem mais confiável. E eu quieto.</p>
<p>Com quase um mês com a coisa rodando eu chego pro meu chefe e falo: Reparou que o sistema parou de cair? Viu como está mais rápido? (Alguns usuários tinham até elogiado). Pois é. Instalei o Tomcat.</p>
<p>Fui elogiado e reconhecido apesar de ter desobedecido ordens pois resolvi um problema enorme da empresa sem nenhum custo e excelente resultado. Fiz o que precisava ser feito no melhor interesse da empresa e de mim mesmo, afinal não sou bombeiro para sair apagando incêndio.</p>
<p>Quase um ano depois acabei também descobrindo porque raios o sistema ainda caia uma ou duas vezes por semana: O servidor era um hardware RISC cuja última versão de Java disponível era 1.3 e os programadores estavam desenvolvendo o sistema em Java 1.4. Quando algumas rotinas eram chamadas elas simplesmente abendavam o container. (Não lembro ao certo os números das versões, mas era algo assim).</p>
<p>A segunda história foi quando eu trabalhava no meu primeiro emprego numa mega-empresa sendo recurso dedicado para um cliente que era outra mega-empresa.</p>
<p>Nosso time de brasileiros foi contratado para substituir um time de americanos. A gente custava menos de 1/4 do que eles custavam então rolou um outsource.</p>
<p>Parte de nossas atividades era uma vez por mês fazer um relatório de capacity planning para as localidades pelas quais éramos responsáveis e apresentar para os administradores dessas localidades.</p>
<p>Para fazer isso tínhamos uma planilha excel onde importávamos gráficos do <a href="http://www.solarwinds.com/">Orion</a> de cada localidade. Eram uns 4 ou 6 gráficos para cada localidade, umas 20 ou mais localidades para cada um dos 10 membros do time.  Eram umas 4 horas de trabalho gerar a planilha. Um total de 40 horas-homem cada mês só pra preparar o relatório.</p>
<p>Depois de uns 3 ou 4 meses fazendo esse treco eu cansei. Trabalho duro e chato demais. Não é possível que não tivesse um forma melhor de fazer aquilo.</p>
<p>Gastei então 2 dias inteiros (16 horas/homem) aprendendo como fazer macros em Excel e fiz um script que era capaz de gerar todos os gráficos sozinho, conectando no Orion e puxando o que fosse necessário. Arrumando fontes, cores, tudo do jeito que o povo estava acostumado.</p>
<p>Joguei na mão do meu time e todo mundo adorou. Criar o report então passou a ser uma atividade de 15 minutos (2.5 horas-homem/mês).</p>
<p>Isso, juntamente com outras inovações que o time trouxe em relação ao que os americanos faziam, nos renderam um prêmio e mais tarde eu consegui ser transferido para um outro departamento para onde eu sempre quis ir, exclusivamente dedicado a projetos.</p>
<p>Em nenhum dos dois casos ninguém me pediu para fazer nada. Não fazia parte das minhas atividades normais e, potencialmente poderiam até me prejudicar (quem sabe demitido no primeiro por desobedecer o chefe ou despedido no segundo por não ser mais necessário).</p>
<p>Eu já trabalhei com pessoas que pensam que não devem automatizar procedimentos pois não poderão mais justificar sua presença &#8220;se não tiverem o que fazer&#8221;. Outras não criam documentação nem procedimentos na esperança de se tornarem insubstituíveis.</p>
<p>Na minha humilde opinião qualquer trabalho que possa ser automatizado não vale a pena ser feito manualmente logo de cara. Se seu trabalho constitui-se apenas de coisas de um script poderia fazer melhor e mais rápido do que você faz seria uma boa idéia começar a procurar um novo emprego. Eu já fiz isso e não me arrependi. Automatizei todas as minha tarefas e pedi demissão. Todo mundo ficou feliz. Meu ex-chefe e eu.</p>
<p>E no segundo caso comento duas coisas:</p>
<ul>
<li>Ninguém é insubstituível.</li>
<li>Quem é quase insubstituível é 100% impromovível.</li>
</ul>
<p>Se você não tem uma atitude profissional do tipo &#8220;faça o que tem que ser feito&#8221; leia o livro e pense na sua carreira.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/emprego" title="emprego" rel="tag">emprego</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/lifehacker/faca-o-que-tem-que-ser-feito/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Porquê as interfaces de rede trocaram de posição no Linux?</title>
		<link>http://geek.linuxman.pro.br/geek/porque-as-interfaces-de-rede-trocaram-de-posicao-no-linux</link>
		<comments>http://geek.linuxman.pro.br/geek/porque-as-interfaces-de-rede-trocaram-de-posicao-no-linux#comments</comments>
		<pubDate>Wed, 17 Mar 2010 11:01:03 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1362</guid>
		<description><![CDATA[Já que não são nem 8 da matina e já to aqui faz tempo, aqui vai o problema que tive essa madrugada e a solução. Cenário: Um servidor que estava rodando e funcional há mais de um ano teve um reboot agendado  de madrugada. Depois do reboot recebo alertas que o tal não voltou automaticamente [...]]]></description>
			<content:encoded><![CDATA[<p>Já que não são nem 8 da matina e já to aqui faz tempo, aqui vai o problema que tive essa madrugada e a solução.</p>
<p>Cenário: Um servidor que estava rodando e funcional há mais de um ano teve um reboot agendado  de madrugada. Depois do reboot recebo alertas que o tal não voltou automaticamente como esperado.</p>
<p>Servidor: Dell PE 2850 com 3 NICs: 2 Intel + 1 DLink rodando CentOS 5.2</p>
<p>Remotamente acessei o KVM e vi que o servidor estava OK, no tela de login. Nenhuma mensagem de erro e as interfaces em pé. Como já sou macaco velho na hora pensei que as interfaces de rede tinham mudado de lugar (já vi isso várias vezes), mas não tinha como testar pois elas estão em redes físicas separadas (não dava só pra reconfigurar uma vlan no switch), então tive que vir pra empresa mesmo.</p>
<p>Chegando aqui, dito e feito. As interfaces (eth0 e eth2) alternaram de posição. Eu já tinha visto isso acontecer antes, mas não sem um upgrade de kernel.</p>
<p>A questão é que o servidor estava up há mais de 1 ano, enquanto eu só tenho 8 meses de empresa. Isso significa que meus antecessores podem ter feito upgrade de kernel em um determinado momento, mas nunca deram boot na versão nova. Eu nunca vou saber.</p>
<p>Mas na verdade o problema poderia ter sido evitado facilmente se as interfaces tivessem sido configuradas adequadamente logo de cara.</p>
<p>No RHEL e no CentOS as interfaces são ativadas pelo /etc/sysconfig/network-scripts/ifcfg-ethX. Onde X é o número da interface. Um dos parâmetros que pode ser configurado é HWADDR, onde você amarra o endereço físico (MAC Address) à interface, de forma que na hora de subir a mesma o Linux saberá exatamente qual é qual.</p>
<p><a href="http://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/ref-guide/s1-networkscripts-interfaces.html">Aqui tem mais detalhes</a> desse arquivo de configuração, enquanto <a href="http://grokbase.com/topic/2008/01/10/centos-nic-order-detection/4dpkT17x_a9wr2IiIYXTB2tukaA#nfL6o9Li0vqCWnnPp4vXpD_yu0I">aqui tem uma excelente explicação</a> de porquê as interfaces podem alternar de posição.</p>

	Tags: <a href="http://geek.linuxman.pro.br/tag/centos" title="CentOS" rel="tag">CentOS</a>, <a href="http://geek.linuxman.pro.br/tag/geek" title="Geek" rel="tag">Geek</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/rhel" title="rhel" rel="tag">rhel</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/porque-as-interfaces-de-rede-trocaram-de-posicao-no-linux/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Faça outsource do seu cérebro</title>
		<link>http://geek.linuxman.pro.br/lifehacker/faca-outsource-do-seu-cerebro</link>
		<comments>http://geek.linuxman.pro.br/lifehacker/faca-outsource-do-seu-cerebro#comments</comments>
		<pubDate>Fri, 26 Feb 2010 21:05:39 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[lifehacker]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1345</guid>
		<description><![CDATA[Não sei se a história abaixo é verídica, mas é uma boa introdução ao post: Dizem que a Xerox contratou uma consultoria para melhorar o serviço de suporte ao cliente. Depois de muito dinheiro gasto, um imenso (e complexo) sistema desenvolvido e nem tanta melhora assim resolveram investigar. Para fazer isso começaram a analisar número [...]]]></description>
			<content:encoded><![CDATA[<p>Não sei se a história abaixo é verídica, mas é uma boa introdução ao post:</p>
<p>Dizem que a Xerox contratou uma consultoria para melhorar o serviço de suporte ao cliente. Depois de muito dinheiro gasto, um imenso (e complexo) sistema desenvolvido e nem tanta melhora assim resolveram investigar. Para fazer isso começaram a analisar número de chamados fechados e feedback dos clientes para determinar quem eram os bam-bam-bans do suporte e usá-los como fonte de estudo para melhorar os outros.</p>
<p>Uma semana de análise depois chegaram à conclusão que dois funcionários eram imensamente superiores &#8211; tanto na quantidade de chamados fechados como no resultado positivo de acordo com os cliente.</p>
<p>Um deles era o funcionário mais antigo do suporte. Com 15 anos de casa ele não só sabia como resolver grande parte dos problemas de cabeça como mantinha sua próprias anotações que utilizava como base de conhecimentos. Ele nem sequer usava o novo sistema.</p>
<p>A surpresa, porém, foi que o segundo melhor foi um novo estagiário, recém-começado na empresa e que ainda nem sequer tinha usuário e senha para acessar a base de conhecimentos. Porém ele sentava do lado do melhor funcionário do suporte e não tinha medo de perguntar.</p>
<p>(in)Felizmente eu já estou nessa vida de sysadmin a tempo suficiente para me encaixar mais no perfil do primeiro sujeito, mas para manter minha sanidade eu fiz outsource do meu cérebro na maior parte das coisas. E tem funcionado bem até o momento. Explico:</p>
<p>A maior parte das coisas que precisamos saber nos nossos trabalhos se encaixam em uma dessas três categorias: As que fazemos muitas vezes, as que fazemos com uma certa freqüencia e as que nunca vimos antes na vida.</p>
<p>Via de regra eu tento fazer outsource do meu cérebro (e francamente do meu tempo) para as três opções e aqui vão algumas dicas. São voltadas para os sysadmins, mas provavelmente podem ser adaptadas para outros profissionais.</p>
<h2>Coisas que fazemos todos os dias</h2>
<h3>Emails</h3>
<p>Crie filtros para seus emails de forma que eles automaticamente caiam em pastas diferentes. Via de regra é possível identificar de forma arbitrária emails que você recebe diariamente e filtrá-los. Pra que perder seu tempo (e sua sanidade) olhando, apagando e filtrando emails manualmente se isso pode ser feito automaticamente? Não vou me aprofundar no assunto se o Augusto fez um <a href="http://www.efetividade.net/2006/07/02/organizando-sua-caixa-de-e-mail-com-efetividade/">excelente post no Efetividade</a> sobre isso.</p>
<h3>Logins e acessos</h3>
<p>Acessar servidores para um sysadmin é tão certo quanto atender telefones para uma secretária. A diferença é que podemos faciltar nossa vida aqui.</p>
<p>Ao invés de ficar batendo usuário e senha, que tal utilizar <a href="http://usuariocompulsivo.blogspot.com/2007/06/ssh-sem-senha-chave-pblicaprivada.html">autenticação via chave pública</a>? Com o tamanho da minha senha acho que teria <a href="http://pt.wikipedia.org/wiki/Les%C3%A3o_por_esfor%C3%A7o_repetitivo">LER</a> se ficasse digitando ela cada vez que preciso acessar um servidor.</p>
<p>E porquê raios gerenciar senhas se você pode fazer outsource da sua autenticação para a uma chave pública? Na real, eu nem sei mais qual a senha do meu usuário no meu provedor.</p>
<p>Em alguns casos, porém, usar chave pública não funciona por motivos técnicos (tenho esse problema em alguns servidores aqui). Nesse caso ainda é possível apelar para alguma coisa tipo o <a href="http://sourceforge.net/projects/sshpass/">sshpass</a> e criar uma pequena função no seu .basrhrc</p>
<pre>goto () {
 [ -z $SSHPASS ] &amp;&amp; read -s -p "Password: " SSHPASS &amp;&amp; export SSHPASS
 sshpass -e ssh -o StrictHostKeyChecking=no $1
}
</pre>
<p>E simplesmente mandar:</p>
<pre>goto hostname</pre>
<p>Ele vai te pedir a senha só a primeira vez e depois vai mantê-la na memória enquanto você tiver aquela sessão do shell aberta.</p>
<h3>Comandos</h3>
<p>Use <a href="http://en.wikipedia.org/wiki/Alias_%28command%29">aliases</a>. Use e abuse, aliás. Só não fique retardado (conheço gente que não consegue rodar um ps com parâmetros básicos sem o alias que tem embaixo de seu perfil).</p>
<p>Decidi que não me importo com a sintaxe de diversos comandos e não me interessa o full path de diversos diretórios. Dâne-se&#8230; alias neles para comandos simples de lembrar e já era.</p>
<p>Criar funções como o goto acima ou usar outras já prontas, como o <a href="http://funcoeszz.net/">Funções ZZ</a>, são outro exemplo de simplificar comandos e deixar as complicações cerebrais para outros. Seu chefe perguntou que dia foi o último reboot de um server com uptime de 209 dias? Outsource:</p>
<pre>$ zzdata hoje - 209</pre>
<pre>01/08/2009</pre>
<h3>Atividades diárias</h3>
<p>Você tem uma série de atividades que precisa fazer todo dia? Coloque no seu calendário alertas automáticos para te lembrar de executar cada uma delas e pare de se preocupar. Manja aquela tensão que a gente sente quando tem alguma coisa importante pra fazer e não pode esquecer? Faça outsource pro seu calendário e durma tranquilo sabendo que ele vai te avisar.</p>
<p>Outra coisa que faço às vezes é configurar o celular para despertar ou algo assim. Não quero ficar olhando no relógio pra lembrar de alguma coisa. Outsource!</p>
<p>E não vou nem falar de automação, né? Aqui vale a dica para qualquer profissão: Conheça suas ferramentas e os softwares envolvidos nas suas atividades. Mesmo se você for um advogado ou um contador conhecer o Office apenas um pouco mais do que a maioria das pessoas já vai te dar uma imensa vantagem. Garanto que muita coisa que você usa seu cérebro para fazer poderiam ser feitas automaticamente (sem nem pensar) pelo Office.</p>
<p>Agora, se você é sysadmin, isso é obrigatório! Aprenda shell script e sua vida vai ser muito, muito mais fácil.</p>
<h2>Só de vez em quando</h2>
<p>Essa categoria de coisas é a pior de todas. Primeiro porquê normalmente coisas que precisam ser feitas com menos frequência tendem a ser complexas ou chatas ou obscuras ou tomarem muito tempo. Mas normalmente é uma combinação de todas.</p>
<p>O que eu faço aqui é manter minha própria base de conhecimentos (quando é algo que vai servir para todo e qualquer emprego que eu tiver) ou criar meus próprios documentos na base de conhecimentos da empresa que eu trabalho no momento.</p>
<p>Mas ao invés de um documento longo e descritivo, como invariavelmente encontramos por ai, eu faço algo que pode ser lido rapidamente e com todos os comandos prontos para copiar/colar.</p>
<p><strong>Exemplo:</strong></p>
<p>Precisamos de uma configuração específica para o sendmail aqui. Os documentos que tinham aqui antes de eu chegar eram algo como:</p>
<p>Passo 1: Dê login no servidor</p>
<p>Passo 2: Vire root</p>
<p>Passo 3: Abra o arquivo /etc/mail/sendmail.cf com o editor de texto</p>
<p>Passo 4: Vá até a linha que diz BLABLABLA</p>
<p>Passo 5: Troque BLABLABLA por XXXX</p>
<p>Passo 6: Salve o arquivo</p>
<p>Passo 7: Reinicie o sendmail</p>
<p>Fica claro que apesar de haver um documento explicando o procedimento você não pode fazer outsource do seu cérebro para ele. Você ainda precisa ler e interpretar muita coisa.</p>
<p>Por isso a minha versão desse documento é:</p>
<p>Como root rode o seguinte:</p>
<pre>sed -i "s/BLABLABLA/XXXX/g" /etc/mail/sendmail.cf &amp;&amp; /etc/init.d/sendmail restart</pre>
<p>Pensamento ZERO. CTRL+C/CTRL+V. Outsource feito.</p>
<p>O importante aqui é o seguinte: A primeira vez que você precisar fazer essa atividade sinistra analise quais passos podem ser automatizados ou simplificados e pense como você pode documentar isso de uma forma que nunca mais precisa PENSAR. Só agir. Essa primeira vez vai dar muito mais trabalho do que daria normalmente, mas vale muito a pena.</p>
<p>Mas de nada adianta essa base de conhecimentos se você não conseguir achar as coisas que você documentou. Nesse caso eu preciso dizer que fiz outsource disso para o Google.</p>
<p>Além do Google Desktop, do Gmail e do Gtalk eu uso também o <a href="http://www.google.com/notebook/">Notebook</a>, que tem opção de tags, busca, etc.</p>
<p>Também uso a <a href="http://www.tiddlywiki.com/">TiddlyWiki</a>, que tem opção de search interna e é fenomenal. Recomendo fortemente.</p>
<h2>Nunca antes (ou uma vez na vida e outra na morte)</h2>
<p>Aqui nem preciso falar, né? GOOGLE.</p>
<p>Porém é importante aprender a usar o Google corretamente. Sabe comunicar-se com ele. Às vezes olho algumas pessoas fazendo pesquisa no Google e fico imaginando se algum dia conseguiram algum tipo de resultado útil. Tente aprender melhor a interagir com o Google e verá que seus resultados vão ser muito melhores e você vai poder fazer outsource de muito mais coisa para ele.</p>
<p>Eu perdi as contas de quantas vezes paguei de Ninja ou de top-senior-bambambam simplemente por saber fazer pesquisas no Google. No começo do ano fechei um chamado que estava aberto há 2 anos aqui na empresa com uma busca de 2 min no Google. E ainda levei trocentos elogios pra casa.</p>
<p>Mas não só Google. Uma outra ferramenta que tem ajudado é o Twitter. Lógico que sempre temos aqueles amigos online no Instant Messenger e que podemos pedir ajuda quando a coisa aperta, mas jogar uma pergunta no Twitter tem sido uma boa opção, já que se alguém lê e sabe a resposta na ponta da língua normalmente manda um reply logo de cara. Enquanto perguntar para alguém no IM sempre tem um overhead (E ai, mano&#8230; Beleza? Tá ocupado? Seguinte&#8230; to precisando de uma ajuda. O que? Não. Não sei&#8230;. onde você almoçou ontem? Putz&#8230; que massa. Quanto? Cacete&#8230; que caro. Legal, hein? Bora&#8230; vamo um dia sim. Ahãn.. Não, não planejei ainda. Ah&#8230; então&#8230; o que eu ia pergunta era _________ )</p>
<p>E lógico, sempre mantenha aquele cara ninja da sua empresa ou aquele gênio com que estudou ou que conheceu num fórum na sua quick list. E não tenha medo de perguntar. Só tenha medo de perguntar DE NOVO a mesma coisa.</p>
<p>Eu adoro quando meus colegas vem com dúvidas novas. Mas abomino quando vem com dúvidas que já respondi. Sinal que eles não conseguem lembrar e também não fizeram outsource de seus cérebros&#8230;</p>

	Tags: <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/lifehacker/faca-outsource-do-seu-cerebro/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Oops&#8230; Mal ae.</title>
		<link>http://geek.linuxman.pro.br/geek/oops-mal-ae</link>
		<comments>http://geek.linuxman.pro.br/geek/oops-mal-ae#comments</comments>
		<pubDate>Mon, 01 Feb 2010 01:15:45 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[IPv4]]></category>
		<category><![CDATA[oops]]></category>
		<category><![CDATA[rede]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1339</guid>
		<description><![CDATA[Entre 2005 e 2007 participei da criação de algumas redes relativamente complexas, com trocentos requerimentos, especificações, servidores, redes, políticas de segurança, etc. Na época eu estava no time de redes e era minha responsabilidade alocar subnets, IPs, Vlans, etc. Até que era divertido fazer toda a engenharia de uma rede razoavelmente grande e complexa, até [...]]]></description>
			<content:encoded><![CDATA[<p>Entre 2005 e 2007 participei da criação de algumas redes relativamente complexas, com trocentos requerimentos, especificações, servidores, redes, políticas de segurança, etc.</p>
<p>Na época eu estava no time de redes e era minha responsabilidade alocar subnets, IPs, Vlans, etc. Até que era divertido fazer toda a engenharia de uma rede razoavelmente grande e complexa, até que chegavam os malditos clusteres.</p>
<p>Não manjo nada de <a href="http://en.wikipedia.org/wiki/AIX">AIX</a>, mas toda vez que precisávamos implementar um cluster de <a href="http://en.wikipedia.org/wiki/IBM_System_p">System P</a> era a mesma coisa:&#8221;Ô, Eri&#8230; precisamos de uma rede exclusiva pra comunicação entre sei-lá-o-que e a repimboca da parafuseta.&#8221;</p>
<p>Tocava eu criar uma Vlan só pra isso.</p>
<p>E onde tem AIX tem o que? <a href="http://en.wikipedia.org/wiki/Oracle_Corporation">Oracle</a>&#8230; (sempre andam juntos ou é impressão?). Ai vem também o DBA e larga: &#8220;O Oracl <a href="http://en.wikipedia.org/wiki/Oracle_RAC">RAC</a> precisa de uma rede exclusiva pra heart beating&#8230;&#8221;</p>
<p>Ô minha nossa&#8230; uma rede feita com tanto capricho e cuidado, com subnets bem definidas, máscaras de rede escolhidas com cuidado, numeração IP feita com esmero o suficiente para ser possível saber o hostname baseado no IP sem precisar de DNS&#8230; E me aparecem esses filhotes de cruz-credo criando redes isoladas e horrível de documentar num diagrama. O que fazer?</p>
<p>Bom&#8230; Eu fazia o seguinte: Para não estragar a minha alocação de redes privadas tão bem planejada eu simplesmente alocava 1.1.1.x/xx para essas tranqueiras. Ficava limpo, bonito e todo mundo que pegava o cliente depois que eu tinha saído do projeto sabia, apenas de bater o olho, do que se tratava aquela subnet: Era isolada e não precisavam se preocupar com ela.</p>
<p>Até ai tudo bem&#8230; Exceto por um problema: Dia 20 de Janeiro de 2010 a rede 1.0.0.0/8 foi alocada para <a href="http://www.apnic.net/">Asia Pacific Network Information Center</a>.  Oops&#8230; Foi mal, hein?</p>
<p>O quanto isso vai ser um problema na prática eu não sei dizer, pois a maioria dessas redes que eu implementei não eram acessíveis via internet de qualquer forma&#8230; Mas potencialmente falando é um problema.</p>
<p>Bom&#8230;. vivendo e aprendendo&#8230; De qualquer forma, desculpa qualquer coisa. <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/ipv4" title="IPv4" rel="tag">IPv4</a>, <a href="http://geek.linuxman.pro.br/tag/oops" title="oops" rel="tag">oops</a>, <a href="http://geek.linuxman.pro.br/tag/rede" title="rede" rel="tag">rede</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/oops-mal-ae/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Restingindo acesso com rbash</title>
		<link>http://geek.linuxman.pro.br/geek/restingindo-acesso-com-rbash</link>
		<comments>http://geek.linuxman.pro.br/geek/restingindo-acesso-com-rbash#comments</comments>
		<pubDate>Tue, 22 Dec 2009 14:34:27 +0000</pubDate>
		<dc:creator>Eri</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rbash]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://geek.linuxman.pro.br/?p=1293</guid>
		<description><![CDATA[Como sysadmins vez por outra a gente precisa dar acesso a clientes, parceiros ou outro tipo de usuário temporário/untrusted aos servidores. Apesar de criar um jail root completo ser a melhor solução muitas vezes é mais trabalho do que o necessário e começa a entrar naquele cenário em que a segurança atrapalha a usabilidade e [...]]]></description>
			<content:encoded><![CDATA[<p>Como sysadmins vez por outra a gente precisa dar acesso a clientes, parceiros ou outro tipo de usuário temporário/untrusted aos servidores. Apesar de criar um jail root completo ser a melhor solução muitas vezes é mais trabalho do que o necessário e começa a entrar naquele cenário em que a segurança atrapalha a usabilidade e os negócios.</p>
<p>Uma forma simples de conseguir uma segurança bacana é utilizar o modo restrito do bash. Com isso habilitado o shell irá desabilitar as seguintes funções:</p>
<ul>
<li>Mudar o diretório (cd)</li>
<li>Mudar o valor das variáveis SHELL, PATH, ENV, or BASH_ENV</li>
<li>Comandos que incluem /</li>
<li>Especificar um arquivo que contenha / como fonte para o comando &#8220;.&#8221;</li>
<li>Usar redirecionamento de output (&gt;, &gt;&gt;, |)</li>
<li>etc (man bash para todas as features)</li>
</ul>
<p>Colocando para rodar:</p>
<p>Crie um link do bash para o rbash e adicione o mesmo em /etc/shells:</p>
<pre>ln -s /bin/bash /bin/rbash
echo /bin/rbash &gt;&gt; /etc/shells</pre>
<p>Depois é só mudar o shell do usuário a ser restringido para usar o rbash:</p>
<pre>usermod -s /bin/rbash username</pre>
<p>Combinando isso com traps (do CTRL+C, por exemplo) você consegue criar um ambiente seguro o suficiente para fornecer serviços e acessos aos seus servidores e ainda assim dormir à noite.</p>
<p>Como diria o SuSE: Have a lot of fun!</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/geek" title="Geek" rel="tag">Geek</a>, <a href="http://geek.linuxman.pro.br/tag/linux" title="linux" rel="tag">linux</a>, <a href="http://geek.linuxman.pro.br/tag/rbash" title="rbash" rel="tag">rbash</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/restingindo-acesso-com-rbash/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

