<?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>Chronosbox &#187; Servidores</title>
	<atom:link href="http://chronosbox.org/blog/categories/linux/servidores/feed" rel="self" type="application/rss+xml" />
	<link>http://chronosbox.org/blog</link>
	<description>idéias e dicas de uma mente insana trabalhando com TI</description>
	<lastBuildDate>Mon, 10 May 2010 03:09:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Migrando bases de dados LATIN1 para UTF-8 com o PostgreSQL</title>
		<link>http://chronosbox.org/blog/moving-postgresql-databases-from-latim1-to-utf8</link>
		<comments>http://chronosbox.org/blog/moving-postgresql-databases-from-latim1-to-utf8#comments</comments>
		<pubDate>Sat, 06 Feb 2010 05:59:22 +0000</pubDate>
		<dc:creator>Felipe 'chronos' Prenholato</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Debian/Ubuntu]]></category>
		<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Servidores]]></category>
		<category><![CDATA[clusters]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[iso-8859-1]]></category>
		<category><![CDATA[latin1]]></category>
		<category><![CDATA[pgsql]]></category>
		<category><![CDATA[psql]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[utf-8]]></category>
		<category><![CDATA[utf8]]></category>

		<guid isPermaLink="false">http://chronosbox.org/blog/?p=264</guid>
		<description><![CDATA[Nos dias atuais é um padrão que todos os sites e servidores web rodem ao menos com UTF-8 como encoding default, entretanto pode-se encontrar casos onde ainda se roda LATIN1 ou até mesmo ASCII.
O caso que tratamos hoje é de um servidor Debian, versão 5.0.3 (lenny), que usava o encode LATIN1 quando instalado e configurado [...]]]></description>
			<content:encoded><![CDATA[<p>Nos dias atuais é um padrão que todos os sites e servidores web rodem ao menos com UTF-8 como encoding default, entretanto pode-se encontrar casos onde ainda se roda LATIN1 ou até mesmo ASCII.</p>
<p>O caso que tratamos hoje é de um servidor Debian, versão 5.0.3 (lenny), que usava o encode LATIN1 quando instalado e configurado o Postgresql, e não me deixava criar uma base de dados UTF-8, gerando o seguinte erro:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;">debian:~<span class="co0"># su postgres -c 'createdb teste3  -E UTF-8'</span>
createdb: database creation failed: ERROR:  encoding UTF8 does not match server<span class="st_h">'s locale en_US
DETAIL:  The server'</span>s LC_CTYPE setting requires encoding LATIN1.</pre></div></div>

<p><span id="more-264"></span></p>
<h3>Porque??</h3>
<p>O Postgresql, quando roda pela primeira vez, cria um cluster usando o encode default do sistema, e após feito isso, não se pode alterar o encode do cluster. O cluster default é o main, em todas as intalações que eu vi. </p>
<p>No caso deste servidor o encode default (locales) era en_US, que para o Debian significa en_US.ISO-8859-1. Por default o Debian Lenny, nas minhas instalações do zero, usa en_US.UTF-8, então o servidor provavelmente deveria ser um antigo Debian Etch atualizado.</p>
<h3>A solução</h3>
<p>Depois de alguma pesquisa, descobri que, após configurar o encode do servidor para usar UTF-8, poderia criar um novo cluster que suportasse tal encode.</p>
<p>Vamos ao passo a passo da solução do problema.</p>
<ul>
<li><strong>Criando um novo cluster:</strong> Para criar um novo cluster no Debian, é bastante simples:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;">debian:~<span class="co0"># pg_createcluster 8.3 utf8_cluster</span>
Creating new cluster <span class="br0">&#40;</span>configuration: <span class="sy0">/</span>etc<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster, data: <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster<span class="br0">&#41;</span>...
Moving configuration <span class="kw2">file</span> <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster<span class="sy0">/</span>postgresql.conf to <span class="sy0">/</span>etc<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster...
Moving configuration <span class="kw2">file</span> <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster<span class="sy0">/</span>pg_hba.conf to <span class="sy0">/</span>etc<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster...
Moving configuration <span class="kw2">file</span> <span class="sy0">/</span>var<span class="sy0">/</span>lib<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster<span class="sy0">/</span>pg_ident.conf to <span class="sy0">/</span>etc<span class="sy0">/</span>postgresql<span class="sy0">/</span><span class="nu0">8.3</span><span class="sy0">/</span>utf8_cluster...
Configuring postgresql.conf to use port 5433...
&nbsp;
debian:~<span class="co0"># /etc/init.d/postgresql-8.3 restart</span></pre></div></div>

<p>O cluster vai rodar na primeira porta livre que achar depois da 5432, a não ser que você especifique. Para ter efeito, reinicia-se o Postgresql.</li>
<li><strong>Criando o usuário:</strong> Agora crie o usuário da base de dados, recomendo o mesmo nome e senha além de editar sua autenticação para trust no pg_hba.conf do seu cluster:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;">debian:~<span class="co0"># su postgres -c &quot;createuser -P pyuser -p 5433&quot;</span>
Enter password <span class="kw1">for</span> new role:
Enter it again:
Shall the new role be a superuser? <span class="br0">&#40;</span>y<span class="sy0">/</span>n<span class="br0">&#41;</span> n
Shall the new role be allowed to create databases? <span class="br0">&#40;</span>y<span class="sy0">/</span>n<span class="br0">&#41;</span> n
Shall the new role be allowed to create <span class="kw2">more</span> new roles? <span class="br0">&#40;</span>y<span class="sy0">/</span>n<span class="br0">&#41;</span> n</pre></div></div>

</li>
<li><strong>Migrando as bases:</strong> Agora você deve migrar as bases de dados. Primeiro crie ela e depois faça um dump seguido de um psql, direto na linha de comando. Siga o exemplo:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;">debian:~<span class="co0"># su postgres -c &quot;createdb teste3 -e -p 5433 -O pyuser&quot;</span>
CREATE DATABASE teste3 OWNER pyuser;</pre></div></div>

<p>Agora liste a base de dados:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;">debian:~<span class="co0"># su postgres -c &quot;psql -l -p 5433&quot;</span>
        List of databases
   Name    <span class="sy0">|</span>  Owner   <span class="sy0">|</span> Encoding
-----------+----------+----------
 postgres  <span class="sy0">|</span> postgres <span class="sy0">|</span> UTF8
 template0 <span class="sy0">|</span> postgres <span class="sy0">|</span> UTF8
 template1 <span class="sy0">|</span> postgres <span class="sy0">|</span> UTF8	
 teste3    <span class="sy0">|</span> pyuser   <span class="sy0">|</span> UTF8
<span class="br0">&#40;</span><span class="nu0">4</span> rows<span class="br0">&#41;</span></pre></div></div>

<p>Após criar a base de dados, então faremos a população dela, atenção quanto as portas:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;">debian:~<span class="co0"># pg_dump -U pyuser teste3 | psql -U pyuser -p 5433 teste3</span></pre></div></div>

</li>
<li><strong>Configurando sua aplicação:</strong> Esta é a parte mais simples, apenas altere a porta da sua aplicação para a porta do novo cluster.</li>
</ul>
<p>Repita os passos da criação da base de dados para cada base que precisa ser movida, e pronto, tudo funcionando agora com suporte a UTF-8.</p>
]]></content:encoded>
			<wfw:commentRss>http://chronosbox.org/blog/moving-postgresql-databases-from-latim1-to-utf8/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Compilando fácil com Debian/Ubuntu</title>
		<link>http://chronosbox.org/blog/compilando-facil-com-debianubuntu</link>
		<comments>http://chronosbox.org/blog/compilando-facil-com-debianubuntu#comments</comments>
		<pubDate>Sun, 03 Jan 2010 21:28:48 +0000</pubDate>
		<dc:creator>Handrus Nogueira</dc:creator>
				<category><![CDATA[Debian/Ubuntu]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Servidores]]></category>

		<guid isPermaLink="false">http://chronosbox.org/blog/?p=255</guid>
		<description><![CDATA[Como usuário do bom e velho gentoo, sempre senti falta da possibilidade de compilar softwares para ganhar uma certa performance. Principalmente em se tratando e softwares de uso em servidor, como Java, PHP, apache, mysql e porstgres. Nos meus testes sempre senti diferença entre as versões pré-compiladas e compilada in loco.
No Debian/Ubuntu a descoberta do [...]]]></description>
			<content:encoded><![CDATA[<p>Como usuário do bom e velho gentoo, sempre senti falta da possibilidade de compilar softwares para ganhar uma certa performance. Principalmente em se tratando e softwares de uso em servidor, como Java, PHP, apache, mysql e porstgres. Nos meus testes sempre senti diferença entre as versões pré-compiladas e compilada in loco.<br />
No Debian/Ubuntu a descoberta do apt-build me ajudou a contornar o problema com a mesma classe e <strong>quase</strong> a mesma eficiência que o portage.</p>
<p>Vamos ao passo-a-passo:</p>
<p>Para instalar o apt-build:<br />
<code>sudo apt-get install apt-build auto-apt</code></p>
<p>Configure para sua máquina:<br />
<code>dpkg-reconfigure apt-build</code><br />
Escolha sua arquitetura de processador e o nível de otimização, o indicado é o médio.<br />
As opções ficam salvas no arquivo <strong>/etc/apt/apt-build.conf</strong> ; Vamos apenas ajustar o número de processadores na ultima linha do arquivo altere-o para<br />
<code>make_options = " -j4"</code><br />
onde o número é igual ao número de &#8220;cores&#8221; + 1. Portanto um quadcore seria &#8220;-j5&#8243;.</p>
<p>Para evitar que os pacotes compilados sejam atualizados pelos pacotes oficiais vamos editar o arquivo <strong>/etc/apt/preferences</strong> adicionando:<br />
<code>Package: *<br />
Pin: release o=apt-build<br />
Pin-Priority: 990</code></p>
<p>Não se esqueça de adicionar os repositórios de código fonte (deb-src) e pronto!<br />
Agora ao invés do tradicional apt-get install
<pacote> utilize <code>apt-build install
<pacote></code></p>
<p>Exemplo: sudo apt-build install xchat emesene</p>
<p>Tutorial rápido sobre apt-build:</p>
<p><strong>apt-build install &#8211;reinstall
<pack></strong> para reinstalar<br />
<strong>apt-build upgrade</strong> Upgrade nos softwares instalados<br />
<strong>apt-build world</strong> Recompila todo o sistema<br />
<strong>apt-build remove programa</strong> Remove o programa<br />
<strong>apt-build clean-build</strong> Remove pacotes compilados<br />
<strong>apt-build clean-sources</strong> Remove os códigos fonte baixados.</p>
]]></content:encoded>
			<wfw:commentRss>http://chronosbox.org/blog/compilando-facil-com-debianubuntu/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Atualize o hosts.deny para bloquear tentativas de brute force</title>
		<link>http://chronosbox.org/blog/update-hosts-deny-script</link>
		<comments>http://chronosbox.org/blog/update-hosts-deny-script#comments</comments>
		<pubDate>Wed, 02 Sep 2009 17:14:22 +0000</pubDate>
		<dc:creator>Felipe 'chronos' Prenholato</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Servidores]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[brute force]]></category>
		<category><![CDATA[hosts.deny]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://chronosbox.org/blog/?p=232</guid>
		<description><![CDATA[Ai embaixo um simples script para você bloquear hosts tentando brute force no seu SSH, muitas das vezes pode sanar o problema de ter uma porta diferente pro ssh  
O script varre o /var/log/messages para detectar tentativas de invasão, pega os hosts, e adiciona no /etc/hosts.deny
Código:

#!/bin/bash&#60;/code&#62;
&#160;
cp /etc/hosts.deny /var/tmp/hosts.deny
&#160;
# Jun  8 00:39:43 mintaka sshd[23332]: [...]]]></description>
			<content:encoded><![CDATA[<p>Ai embaixo um simples script para você bloquear hosts tentando brute force no seu SSH, muitas das vezes pode sanar o problema de ter uma porta diferente pro ssh <img src='http://chronosbox.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>O script varre o /var/log/messages para detectar tentativas de invasão, pega os hosts, e adiciona no /etc/hosts.deny</p>
<p>Código:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;"><span class="co0">#!/bin/bash&lt;/code&gt;</span>
&nbsp;
<span class="kw2">cp</span> <span class="sy0">/</span>etc<span class="sy0">/</span>hosts.deny <span class="sy0">/</span>var<span class="sy0">/</span>tmp<span class="sy0">/</span>hosts.deny
&nbsp;
<span class="co0"># Jun  8 00:39:43 mintaka sshd[23332]: User root from 222.77.183.51 not allowed because not listed in AllowUsers</span>
<span class="kw2">egrep</span> <span class="st0">&quot;<span class="es4">$(date +%b)</span> (<span class="es4">$(date +%d)</span>|<span class="es4">$(date +%e)</span>).*User .* from [a-z0-9\.]* not allowed because not listed in AllowUsers&quot;</span> <span class="sy0">/</span>var<span class="sy0">/</span>log<span class="sy0">/</span>messages <span class="sy0">|</span> <span class="kw2">sed</span> <span class="re5">-e</span> <span class="st_h">'s/.* from \([a-z0-9\.]*\) .*/\1/'</span> <span class="sy0">|</span> <span class="kw2">sort</span> <span class="sy0">|</span> <span class="kw2">uniq</span> <span class="sy0">|</span> <span class="kw2">sed</span> <span class="re5">-e</span> <span class="st_h">'s/^/ALL:/'</span> <span class="sy0">&amp;</span>gt; <span class="sy0">/</span>etc<span class="sy0">/</span>hosts.deny ;
<span class="co0">#Jun  8 11:54:33 mintaka sshd[31221]: Invalid user bob from 62.204.145.224</span>
<span class="kw2">egrep</span> <span class="st0">&quot;<span class="es4">$(date +%b)</span> (<span class="es4">$(date +%d)</span>|<span class="es4">$(date +%e)</span>).*Invalid user .* from [a-z0-9\.]*$&quot;</span> <span class="sy0">/</span>var<span class="sy0">/</span>log<span class="sy0">/</span>messages <span class="sy0">|</span> <span class="kw2">sed</span> <span class="re5">-e</span> <span class="st_h">'s/.*Invalid user .* from//'</span> <span class="sy0">|</span> <span class="kw2">sort</span> <span class="sy0">|</span> <span class="kw2">uniq</span> <span class="sy0">|</span> <span class="kw2">sed</span> <span class="re5">-e</span> <span class="st_h">'s/^/ALL:/'</span> <span class="sy0">&amp;</span>gt;<span class="sy0">&amp;</span>gt; <span class="sy0">/</span>etc<span class="sy0">/</span>hosts.deny ;
&nbsp;
<span class="kw2">diff</span> <span class="re5">-u</span> <span class="sy0">/</span>etc<span class="sy0">/</span>hosts.deny <span class="sy0">/</span>var<span class="sy0">/</span>tmp<span class="sy0">/</span>hosts.deny <span class="sy0">&amp;</span>amp;<span class="sy0">&amp;</span>gt;<span class="sy0">/</span>dev<span class="sy0">/</span>null <span class="sy0">||</span> <span class="br0">&#40;</span><span class="kw3">echo</span> <span class="st0">&quot;** hosts.deny updated **&quot;</span> ; <span class="kw2">cat</span> <span class="sy0">/</span>etc<span class="sy0">/</span>hosts.deny<span class="br0">&#41;</span></pre></div></div>

<p>Script funcionando:<br />
<code><br />
Sep  2 16:55:02 mintaka -- MARK --<br />
Sep  2 13:58:10 mintaka sshd[20790]: Did not receive identification string from 189.2.118.72<br />
Sep  2 13:58:34 mintaka sshd[20795]: Invalid user suporte from 189.2.118.72<br />
# Tentativa de brute force<br />
Sep  2 13:58:41 mintaka sshd[20798]: Invalid user suporte from 189.2.118.72<br />
Sep  2 13:58:43 mintaka sshd[20800]: Invalid user suporte from 189.2.118.72<br />
Sep  2 13:58:46 mintaka sshd[20802]: Invalid user suporte from 189.2.118.72<br />
Sep  2 13:58:49 mintaka sshd[20804]: Invalid user suporte from 189.2.118.72<br />
Sep  2 13:58:51 mintaka sshd[20806]: Invalid user suporte from 189.2.118.72<br />
Sep  2 13:59:24 mintaka sshd[20817]: Did not receive identification string from 189.2.118.72<br />
# Script roda<br />
** hosts.deny updated **<br />
ALL:74.221.239.100<br />
ALL: 189.2.118.72<br />
ALL: 200.27.79.101<br />
ALL: 74.221.239.100<br />
# E os hosts agora estão bloqueados<br />
Sep  2 14:00:09 mintaka sshd[20826]: Invalid user teste2008 from 189.2.118.72<br />
Sep  2 14:00:10 mintaka sshd[20864]: refused connect from 189.2.118.72 (189.2.118.72)<br />
</code></p>
<p>Eu rodo em minha máquina a cada 2 minutos <img src='http://chronosbox.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://chronosbox.org/blog/update-hosts-deny-script/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>pingping &#8211; Verificando conexão com servidores.</title>
		<link>http://chronosbox.org/blog/alertar-caso-servidores-caiam</link>
		<comments>http://chronosbox.org/blog/alertar-caso-servidores-caiam#comments</comments>
		<pubDate>Mon, 25 Jun 2007 15:28:38 +0000</pubDate>
		<dc:creator>Felipe 'chronos' Prenholato</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet GentooBR]]></category>
		<category><![CDATA[Servidores]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[icmp]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false">http://chronosbox.org/blog/2007/06/25/alertar-caso-servidores-caiam/</guid>
		<description><![CDATA[Ai em baixo meu script pingping. Ele vai alertar os emails quando algum servidor parar. Leia ele  .

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/sh
# This script send ICMP requests for each server on SERVIDORES list and sends
# emails for emails in LISTA_EMAILS list why one of servers doesn't reply
# You only receive alerts if in last time that script request [...]]]></description>
			<content:encoded><![CDATA[<p>Ai em baixo meu script <strong>pingping</strong>. Ele vai alertar os emails quando algum servidor parar. Leia ele <img src='http://chronosbox.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;"><span class="co0">#!/bin/sh</span>
<span class="co0"># This script send ICMP requests for each server on SERVIDORES list and sends</span>
<span class="co0"># emails for emails in LISTA_EMAILS list why one of servers doesn't reply</span>
<span class="co0"># You only receive alerts if in last time that script request server we have a success reply</span>
<span class="co0"># or if we not tested server yet.</span>
<span class="co0">#</span>
<span class="co0"># Author: Felipe Rafael Prenholato - chronos@gentoobr.org</span>
<span class="co0"># IRC: nick chronos at irc.freenode.net</span>
<span class="co0"># Date: 21 de Junho de 2006.</span>
<span class="co0">#</span>
<span class="co0"># This script is under GPLv2. Read it at http://www.gnu.org/licenses/gpl-2.0.txt.</span>
<span class="co0"># Any changes please send me a mail :).</span>
<span class="co0">#</span>
&nbsp;
<span class="co0"># IP or name of servers to test</span>
<span class="re2">SERVIDORES</span>=<span class="st0">&quot;elise prime odissey&quot;</span>
&nbsp;
<span class="co0"># emailo to send alerts</span>
<span class="re2">LISTA_EMAILS</span>=<span class="st0">&quot;chronos@gentoobr.org philipe_rp@yahoo.com.br&quot;</span>
&nbsp;
<span class="co0"># date format to send in email</span>
<span class="re2">data</span>=$<span class="br0">&#40;</span><span class="kw2">date</span> +<span class="st0">&quot;%T de %d/%m/%Y&quot;</span><span class="br0">&#41;</span>
&nbsp;
<span class="co0"># this function sends ping</span>
ping_server<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
<span class="kw3">local</span> pingreturn
<span class="kw3">local</span> serversts
<span class="kw3">local</span> TMPFILE
<span class="kw3">local</span> server
&nbsp;
<span class="re2">server</span>=$<span class="nu0">1</span>
<span class="re2">TMPFILE</span>=<span class="st0">&quot;/tmp/ping_<span class="es2">$server</span>.tmp&quot;</span>
&nbsp;
<span class="co0"># Debug</span>
<span class="co0">#echo &quot;Server: $server&quot;</span>
<span class="co0">#echo &quot;Temp file: $TMPFILE&quot;</span>
&nbsp;
<span class="co0"># ping and get return</span>
<span class="kw2">ping</span> <span class="re5">-c3</span> <span class="re1">$server</span> <span class="sy0">&amp;</span>amp;<span class="sy0">&gt;/</span>dev<span class="sy0">/</span>null;
<span class="re2">pingreturn</span>=<span class="re4">$?</span>;
&nbsp;
<span class="co0"># 0 means ok</span>
<span class="kw1">if</span> <span class="br0">&#91;</span> <span class="st0">&quot;<span class="es2">$pingreturn</span>&quot;</span> == <span class="st0">&quot;0&quot;</span> <span class="br0">&#93;</span>
<span class="kw1">then</span>
<span class="kw3">echo</span> <span class="st0">&quot;1&quot;</span> <span class="sy0">&gt;</span> <span class="re1">$TMPFILE</span>
<span class="kw1">fi</span>
&nbsp;
<span class="co0"># 1 means problems</span>
<span class="kw1">if</span> <span class="br0">&#91;</span> <span class="st0">&quot;<span class="es2">$pingreturn</span>&quot;</span> == <span class="st0">&quot;1&quot;</span> <span class="br0">&#93;</span>
<span class="kw1">then</span>
&nbsp;
<span class="kw1">if</span> <span class="sy0">!</span> <span class="br0">&#91;</span> <span class="re5">-e</span> <span class="re1">$TMPFILE</span> <span class="br0">&#93;</span>
<span class="kw1">then</span>
<span class="kw3">echo</span> <span class="st0">&quot;1&quot;</span> <span class="sy0">&gt;</span> <span class="re1">$TMPFILE</span>
<span class="kw1">fi</span>
&nbsp;
<span class="re2">serversts</span>=$<span class="br0">&#40;</span><span class="kw2">cat</span> <span class="re1">$TMPFILE</span><span class="br0">&#41;</span>
&nbsp;
<span class="co0"># send mail if have problems</span>
<span class="kw1">if</span> <span class="br0">&#91;</span> <span class="st0">&quot;<span class="es2">$serversts</span>&quot;</span> == <span class="st0">&quot;1&quot;</span> <span class="br0">&#93;</span>
<span class="kw1">then</span>
&nbsp;
<span class="kw3">echo</span> <span class="st0">&quot;0&quot;</span> <span class="sy0">&gt;</span> <span class="re1">$TMPFILE</span>
<span class="re2">msg</span>=<span class="st0">&quot;Servidor <span class="es2">$server</span> fora do ar em <span class="es2">$data</span>. Contatar responsavéis.&quot;</span>
<span class="re2">ass</span>=<span class="st0">&quot;Servidor <span class="es2">$server</span> fora do ar.&quot;</span>
<span class="re2">LC_ALL</span>=<span class="st0">&quot;en_US.ISO-8859-1&quot;</span> <span class="kw3">echo</span> <span class="st0">&quot;<span class="es2">$msg</span>&quot;</span> <span class="sy0">|</span> mail <span class="re5">-s</span> <span class="st0">&quot;<span class="es2">$ass</span>&quot;</span> <span class="re1">$LISTA_EMAILS</span>
<span class="kw1">fi</span>
&nbsp;
<span class="kw1">fi</span>
&nbsp;
<span class="br0">&#125;</span>
&nbsp;
<span class="co0"># roda ping_server para cada servidor.</span>
<span class="kw1">for</span> e <span class="kw1">in</span> $<span class="br0">&#40;</span><span class="kw3">echo</span> <span class="re1">$SERVIDORES</span><span class="br0">&#41;</span>;
<span class="kw1">do</span>
ping_server <span class="re1">$e</span>;
<span class="kw1">done</span></pre></td></tr></table></div>

<p>Ele precisa ser instalado em um servidor que possa pingar os demais e enviar emails. Versões antigas do postfix não vão funcionar, tem q suportar a opção -a no comando mail, seu uso é:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;">.<span class="sy0">/</span>script</pre></div></div>

<p>Coloque ele para rodar no cron e fique numa boa <img src='http://chronosbox.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://chronosbox.org/blog/alertar-caso-servidores-caiam/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
