<?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>Thunder-Boy &#187; HowTo &#8211; Como fazer</title>
	<atom:link href="http://jf.eti.br/category/howto-como-fazer/feed/" rel="self" type="application/rss+xml" />
	<link>http://jf.eti.br</link>
	<description>Aprender é Bom Demais!!!</description>
	<lastBuildDate>Wed, 02 May 2012 20:57:46 +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>Setas em ASCII</title>
		<link>http://jf.eti.br/setas-em-ascii/</link>
		<comments>http://jf.eti.br/setas-em-ascii/#comments</comments>
		<pubDate>Wed, 02 May 2012 20:57:46 +0000</pubDate>
		<dc:creator>Jonas</dc:creator>
				<category><![CDATA[HowTo - Como fazer]]></category>

		<guid isPermaLink="false">http://jf.eti.br/?p=2426</guid>
		<description><![CDATA[Combinar com ALT + Número: 30 = ▲ (seta pra cima) 31 = ▼ (seta para baixo) 16 = ► (seta para direita) 17 = ◄ (seta para esquerda) Outro formato: 23 = ↨ (seta para baixo e para cima) 24 = ↑ (seta pra cima) 25 = ↓ (seta para baixo) 26 = → [...]]]></description>
			<content:encoded><![CDATA[<p>Combinar com ALT + Número:</p>
<p>30 = ▲ (seta pra cima)</p>
<p>31 = ▼ (seta para baixo)</p>
<p>16 = ► (seta para direita)</p>
<p>17 = ◄ (seta para esquerda)</p>
<p>Outro formato:</p>
<p>23 = ↨ (seta para baixo e para cima)</p>
<p>24 = ↑ (seta pra cima)</p>
<p>25 = ↓ (seta para baixo)</p>
<p>26 = → (seta pra direita)</p>
<p>27 = ← (seta para esquerda)</p>
]]></content:encoded>
			<wfw:commentRss>http://jf.eti.br/setas-em-ascii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script de Backup (dump) SVN &#8211; Subversion</title>
		<link>http://jf.eti.br/script-de-backup-dump-svn-subversion/</link>
		<comments>http://jf.eti.br/script-de-backup-dump-svn-subversion/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 21:18:39 +0000</pubDate>
		<dc:creator>Jonas</dc:creator>
				<category><![CDATA[HowTo - Como fazer]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://jf.eti.br/?p=2386</guid>
		<description><![CDATA[Continuando a série de scripts de backup, hoje iremos ver como realizar o backup de versionamentos SVN (subversion). Podemos começar este poste com as palavras de um sábio: &#8220;Existem dois tipos de pessoas, aquelas que fazem backup regularmente e aquelas que nunca tiveram uma falha do disco rígido&#8221; Existem uma série de cenários e estratégias [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" src="http://1.bp.blogspot.com/-NmcW5e17XbE/Tr1mJtrS3mI/AAAAAAAAFtE/pfdFLYyrku4/s320/online-backup.jpg" alt="" width="320" height="212" /></p>
<p>Continuando a série de scripts de backup, hoje iremos ver como realizar o backup de versionamentos SVN (subversion).</p>
<p>Podemos começar este poste com as palavras de um sábio:</p>
<p><em>&#8220;Existem dois tipos de pessoas, aquelas que fazem backup regularmente e aquelas que nunca tiveram uma falha do disco rígido&#8221;</em></p>
<p>Existem uma série de cenários e estratégias de backup. A maioria delas sugerem uma cópia de segurança, uma vez por dia, geralmente nas primeiras horas. Este, porém, pode não funcionar bem com um ambiente com mudanças rápidas onde os dados muda várias vezes por hora. Este tipo de ambiente é geralmente em desenvolvimento de software, visto que o código pode se modificar completamente várias vezes em questão de horas, e muitas vezes um único backup diário pode não funcionar.</p>
<p>#!/bin/sh<br />
################################################<br />
#<br />
# Backup Completo dos repositorios SVN<br />
#<br />
# @author   Jonas Ferreira<br />
# @email    jonas [at] jf [dot] eti [dot] br<br />
# @version  v0.01<br />
# @reldate  2012-04-09<br />
################################################</p>
<p># data<br />
# &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
bakdate=$(date +%Y%m%d%H%M)<br />
echo &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#8221;<br />
echo &#8220;Rodando o script de Backup &#8211; SVN &#8211; $bakdate&#8221;<br />
echo &#8220;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;\n&#8221;</p>
<p># Local onde estao os repositorios<br />
# &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
svnrepos=&#8221;/srv/svnrepos&#8221;</p>
<p># Local onde sera gerado o DUMP<br />
# &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
bakdest=&#8221;/home/username/SVN-BACKUPS&#8221;</p>
<p># Local onde os dumps serao tranferidos, apos o DUMP<br />
# &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
baktousb=&#8221;/media/USB/Extra-BACKUP&#8221;</p>
<p># Entrando na pasta dos repositorios<br />
cd $svnrepos</p>
<p># Certificando se tem acesso de escrita na pasta de destino<br />
if [ -d "$bakdest" ] &#038;&#038; [ -w "$bakdest" ] ; then</p>
<p>  for repo in *; do<br />
    # gerando um dump para cada projeto<br />
    echo &#8220;Executando: svnadmin dump $repo > $bakdest/$repo-$bakdate.svn.dump \n&#8221;<br />
    # Finalizando o backup<br />
    svnadmin dump $repo > $bakdest/$repo-$bakdate.svn.dump</p>
<p>    # copiando os arquivos para a unidade remota<br />
    if [ -d "$baktousb" ] &#038;&#038; [ -w "$baktousb" ] ; then<br />
      echo &#8220;Copiando para $baktousb &#8230;\n&#8221;<br />
      cp $bakdest/$repo-$bakdate.svn.dump $baktousb<br />
    fi<br />
  done<br />
else<br />
  echo &#8220;Nao eh possivel continuar o processo de backup&#8221;<br />
  echo &#8220;$bakdest *NAO* eh um diretorio gravavel.&#8221;<br />
fi</p>
<p># Finalizando o script de backup<br />
echo &#8220;\n\n=================================&#8221;<br />
echo &#8221; &#8211; Backup Completo :-]&#8221;</p>
<p>Anexo aqui o script personalizado por mim, onde faz-se o backup Full e transfere-se para um servidor na rede por meio de cifs. (Servidor SVN rodando no CentOS 6.2).<br />
<a href='http://jf.eti.br/wp-content/uploads/script_svn_site.txt'><strong>Download do Script</strong></a></p>
<p>Para restaurar o dump, é só executar:<br />
$ svnadmin load /var/www/svn/repos < repos-backup</p>
<p>Fontes:<br />
- <a href="http://wiki.centos.org/HowTos/Subversion" target="_blank">Instalação do SVN no CentOS<br />
- <a href="http://www.niden.net/2010/08/subversion-backup-how-to.html">http://www.niden.net/</a><br />
(exemplos de backup incremental)<br />
- <a href="http://www.hossainkhan.info/content/shell-script-backup-all-your-svn-repositories" target="_blank">http://www.hossainkhan.info/content/shell-script-backup-all-your-svn-repositories</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jf.eti.br/script-de-backup-dump-svn-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalando GP-Web com nginx + Php-fpm no Centos6 64bits</title>
		<link>http://jf.eti.br/instalando-gp-web-com-nginx-php-fpm-no-centos6-64bits/</link>
		<comments>http://jf.eti.br/instalando-gp-web-com-nginx-php-fpm-no-centos6-64bits/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 17:36:32 +0000</pubDate>
		<dc:creator>Jonas</dc:creator>
				<category><![CDATA[Dicas Web]]></category>
		<category><![CDATA[HowTo - Como fazer]]></category>

		<guid isPermaLink="false">http://jf.eti.br/?p=2348</guid>
		<description><![CDATA[O sistema GP-Web, é a uma das principais ferramentas no mercado nacional no gerenciamento de projetos, gestão estratégica, tramitação interna de mensagens e documentos eletrônicos protocolados e se propõe a ser uma solução completa e integrada para qualquer organização pública ou privada. Funciona via Web, tendo sido criado na linguagem PHP com banco de dados [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.sistemagpweb.com/images/imagens/logo.jpg" alt="" /></p>
<p>O sistema GP-Web, é a uma das principais ferramentas no mercado nacional no gerenciamento de projetos, gestão estratégica, tramitação interna de mensagens e documentos eletrônicos protocolados e se propõe a ser uma solução completa e integrada para qualquer organização pública ou privada. Funciona via Web, tendo sido criado na linguagem PHP com banco de dados MySQL. E detalhe, é totalmente gratuito.</p>
<p>O mesmo está instalado em parcela significativa do Governo, tanto no Executivo quanto no Judiciário e com perspectiva de até o final de 2013 ser a solução corporativa standard de gerenciamento de projetos integrado com gestão estratégica de todos os Ministérios do Poder Executivo Federal e do Judiciário Brasileiro.</p>
<p>Conheça mais sobre o projeto:<br />
- http://www.sistemagpweb.com/<br />
- <a href="http://www.sistemagpweb.com/index.php/component/sl_simpledownload/?view=download&#038;format=raw&#038;file_id=Zm9sZGVyLnBkZg==" target="_blank">Folder publicitário do Sistema</a></p>
<p>Neste tutorial, vamos aprender a como instalar o sistema utilizando o NGinx, uma alternativa ao Apache, que consome poucos recursos e é extremamente rápido.</p>
<p>==================================<br />
Linux CentOS 6x &#8211; 64bits<br />
==================================</p>
<p><strong>Instalar os Repositórios do Remi e Epel</strong></p>
<p>1) EPEL</p>
<pre class="brush: shell">
# yum install yum-priorities
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
</pre>
<p>2)REMI</p>
<pre class="brush: shell">
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
</pre>
<p><strong>Instalar o webserver nginx</strong></p>
<pre class="brush: shell">
# yum install nginx
# chkconfig --level 345 nginx on # deixar o nginx iniciar por padrão
# /etc/init.d/nginx restart
</pre>
<p><strong>Outros módulos do Php necessários para o Gp-Web</strong></p>
<pre class="brush: shell"># yum --enablerepo=remi install php php-mysql php-ldap php-gd</pre>
<p><strong>Instalar o Mysql-server</strong></p>
<pre class="brush: shell">
# yum remove mysql* # removendo arquivos versão presente caso haja
# yum --enablerepo=remi install mysql-server
# mysqladmin -u root password &#039;senha&#039; # setando a senha
</pre>
<p><strong>Baixar e Descompactar o pacote do GP-Web</strong></p>
<p>Baixe o pacote aqui <a href="http://www.softwarepublico.gov.br/dotlrn/clubs/gpweb/file-storage/view/gpweb_v8_0_16.zip" target="_blank">http://www.softwarepublico.gov.br/dotlrn/clubs/gpweb/file-storage/view/gpweb_v8_0_16.zip</a></p>
<pre class="brush: shell">
# cd /var/www/html
# cp ~/Downloads/gpweb_v8_0_10.zip . # copie o gpweb para lá */html
# unzip gpweb_v8_0_10.zip # descompactar
# chmod -R 777 gpweb # Setando Permissões no diretório gpweb
# chown -R nginx.nginx gpweb/
</pre>
<p><strong>Configurar o Virtual Host do GP-Web</strong></p>
<pre class="brush: shell">
# cd /etc/nginx/conf.d
# vim gp-web.conf

server {
  server_name gp-web;
  root /var/www/html/gpweb;
  access_log /var/log/nginx/gp-web-access.log;
  error_log /var/log/nginx/gp-web-error.log;
     location / {
              root /var/www/html/gpweb;
              index index.php index.html index.htm;
     }

     location ~ \.php$ {
                root html;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME /var/www/html/gpweb$fastcgi_script_name;
     }
}
</pre>
<p><strong>Instalação do GP-Web via web</strong></p>
<p>Agora, com todos os serviços rodando (php-fpm; nginx e mysql-server) basta acessar o GP-Web via web, digitando no navegador:</p>
<p>http://127.0.0.1</p>
<p>ou http://localhost<br />
ou até mesmo http://gp-web &#8211; que é nosso virtual host.</p>
<p>1 &#8211; Tela<br />
Mensagem: Ainda não foi criado o arquivo de configuração. Clique aqui para iniciar a instalação e criar um<br />
(redirecionamento em 5 seg.) </p>
<p>2 &#8211; Tela<br />
Confira se todos os pré-requisitos estão ativados e instalados -</p>
<p>&#8220;A única Observação que pode ocorrer é uma mensagem no final da página inicial do gpweb dizendo que você está utilizando: <strong>um servidor web diferente do apache, onde o mesmo é o unico 100% compatível com o GP-Web</strong>.</p>
<p>Porém, pode prosseguir com a instalação que não terá problemas.</p>
<p>Se tudo estiver ok, clique em <strong>iniciar instalação</strong></p>
<p>3 &#8211; Tela<br />
Instalador do GP-Web<br />
Configurações do Banco de Dados</p>
<p>1-Insira a senha do SGBD &#8216;senha&#8217;<br />
2-Desmarque a opção > &#8216;Carregar dados de exemplo?&#8217;<br />
3-Clique em > &#8216;Instalar Completo&#8217;</p>
<p>4 &#8211; Tela<br />
Login e Senha<br />
admin 123456 </p>
<p>Ao finalizar, caso apareça esse erro &#8220;<strong>504 Gateway Time-out</strong>&#8220;, basta apenas atualizar a pagina para http://gp-web</p>
<p>==================================<br />
Soluções de possíveis problemas<br />
==================================<br />
1. &#8216;Erros com a criação da base de dados ou tabelas corrompidas;<br />
Solução:<br />
mysql_upgrade h localhost -u root -p senha</p>
<p>2. &#8216;Erros na Tela 2 &#8211; Suporte GD (para o gráfico GANTT)&#8217;<br />
Solução:<br />
yum &#8211;enablerepo=remi install php-gd</p>
<p>3. &#8216;Erros na Tela 2 &#8211; Caminho para salvar a Sessão permite escrita? OK (/var/lib/php/session)&#8217;<br />
Solução:<br />
yum &#8211;enablerepo=remi install php</p>
<p>4. &#8216;Erros na Tela 2 &#8211; MySQL e LDAP&#8217;<br />
Solução:<br />
yum &#8211;enablerepo=remi install php-mysql php-ldap</p>
<p>5. “Erros ao abrir http://localhost – Forbidden 403 – sem permissão<br />
Solução:<br />
Edite o arquivo /etc/httpd/conf.d/httpd.conf<br />
Localize o:<br />
DirectoryIndex – inclua index.php, remova o index.html</p>
<p>6. “Erros de codificação” ao acessar http://localhost as letras ficam todas irregulares.<br />
Solução:<br />
Edite o arquivo /etc/httpd/conf/httpd.conf<br />
Localize o:<br />
AddDefaultCharset – e modifique para ISO-8859-1</p>
<p>7. “Erros na tela de instalação completa” Erros com a criação do banco.<br />
Solução:<br />
Troque o 127.0.0.1 por localhost<br />
======================================================================<br />
Contribuição de<br />
Rafael Cristaldo<br />
PTI &#8211; Prognus Software Livre<br />
<a href="http://br.linkedin.com/pub/rafael-cristaldo/21/918/938" target="_blank">http://br.linkedin.com/pub/rafael-cristaldo/21/918/938</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jf.eti.br/instalando-gp-web-com-nginx-php-fpm-no-centos6-64bits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script de Backup (dump) Postgresql – Com bancos a escolher</title>
		<link>http://jf.eti.br/script-de-backup-dump-postgresql-com-bancos-a-escolher/</link>
		<comments>http://jf.eti.br/script-de-backup-dump-postgresql-com-bancos-a-escolher/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 14:23:31 +0000</pubDate>
		<dc:creator>Jonas</dc:creator>
				<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[HowTo - Como fazer]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://jf.eti.br/?p=2341</guid>
		<description><![CDATA[Depois que publiquei o artigo Script de Backup (dump) Postgresql – Múltiplos bancos em arquivos separados, onde por meio de um script shell, é gerados dumps de todos os bancos existentes no servidor, cada banco um arquivo separado e compactado, me perguntaram se era possível, com a mesma idéia fazer um script que ao invés [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" src="http://i.imgur.com/s8dHZ.jpg" alt="" width="254" height="288" /></p>
<p>Depois que publiquei o artigo <a href="http://jf.eti.br/script-de-backup-dump-postgresql-multiplos-bancos-em-arquivos-separados/" target="_blank">Script de Backup (dump) Postgresql – Múltiplos bancos em arquivos separados</a>, onde por meio de um script shell, é gerados dumps de todos os bancos existentes no servidor, cada banco um arquivo separado e compactado, me perguntaram se era possível, com a mesma idéia fazer um script que ao invés de realizar o dump de todas as bases, fosse possível definir quais bancos seriam backupiados.</p>
<p>Pois bem, é bem simples de fazer isso, vejamos:</p>
<pre class="brush: shell">
#!/bin/bash
#
# Um simples script de backup
# Autor: Jonas Ferreira

# db_array - lista dos bancos que se deseja fazer o dump
db_array=&quot;banco1 banco2 banco3 banco4&quot;

# logfile - arquivo que grava o log de cada execucao do script
logfile=&quot;/tmp/pgsql-backup.log&quot;

#Diretorio de destino do arquivos
DIR=/tmp/backup

for db in $db_array
do
        /usr/bin/pg_dump $db &gt; &quot;$DIR/$db.sql&quot; 1&gt;&gt; $logfile 2&gt;&gt; $logfile
        tar zcvf &quot;$DIR/$db.tgz&quot; &quot;$DIR/$db.sql&quot;
        rm -rf &quot;$DIR/$db.sql&quot;
done
</pre>
<p>Simples assim!</p>
]]></content:encoded>
			<wfw:commentRss>http://jf.eti.br/script-de-backup-dump-postgresql-com-bancos-a-escolher/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resolvendo problemas da placa eth0 ao clonar máquinas virtuais CentOS no VMware ESX</title>
		<link>http://jf.eti.br/resolvendo-problemas-da-placa-eth0-ao-clonar-maquinas-virtuais-centos-no-vmware-esx/</link>
		<comments>http://jf.eti.br/resolvendo-problemas-da-placa-eth0-ao-clonar-maquinas-virtuais-centos-no-vmware-esx/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 15:36:59 +0000</pubDate>
		<dc:creator>Jonas</dc:creator>
				<category><![CDATA[HowTo - Como fazer]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://jf.eti.br/?p=2337</guid>
		<description><![CDATA[Após a clonagem de uma máquina virtual pelo VMWare a placa de rede do eth0 do Linux CentOS é renomeada como eth1, e não pega IP. isto é devido ao duplicamento de endereço MAC. Para corrigir este problema deve se efetuar a seguinte os seguintes comandos: # cd /etc/udev/rules.d # cp 70-persistent-net.rules /root/ # rm [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.dedoimedo.com/images/computers/2009/vmware-esxi-datastore-1.jpg" alt="" width="515" height="234" /></p>
<p>Após a clonagem de uma máquina virtual pelo VMWare a placa de rede do eth0 do Linux CentOS é renomeada como eth1, e não pega IP. isto é devido ao duplicamento de endereço MAC. Para corrigir este problema deve se efetuar a seguinte os seguintes comandos: </p>
<pre class="brush: shell">
# cd /etc/udev/rules.d
# cp 70-persistent-net.rules /root/
# rm 70-persistent-net.rules
# reboot
</pre>
<p>Este arquivo é gerado automaticamente pelo /lib/udev/write_net_rules program, e pode ser removido sem problemas. Para verificar se o problema foi corrigido, execute:</p>
<pre class="brush: shell"># /sbin/ifconfig | grep &quot;^eth&quot;</pre>
<p>Terá como resposta, algo assim:</p>
<pre class="brush: shell">eth1      Link encap:Ethernet  HWaddr 00:0C:29:F3:E4:1E</pre>
<p>Você precisa trocar o endereço MAC da placa atual em /etc/sysconfig/networking-scripts/ifcfg-eth0, colocando o MAC exibido na acima, na linha HWADDR:</p>
<pre class="brush: shell">
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
</pre>
<p>Salve tudo e reinicie os serviços de rede </p>
<pre class="brush: shell">
# service network restart
# reboot
</pre>
<p>Para verificar se realmente funcionou, execute os seguintes comandos:</p>
<pre class="brush: shell">
# /sbin/ifconfig -a
# route -n
</pre>
<p>Verá que agora a referência é a eth0.</p>
]]></content:encoded>
			<wfw:commentRss>http://jf.eti.br/resolvendo-problemas-da-placa-eth0-ao-clonar-maquinas-virtuais-centos-no-vmware-esx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script de Backup (dump) Mysql – Múltiplos bancos em arquivos separados</title>
		<link>http://jf.eti.br/script-de-backup-dump-mysql-multiplos-bancos-em-arquivos-separados/</link>
		<comments>http://jf.eti.br/script-de-backup-dump-mysql-multiplos-bancos-em-arquivos-separados/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 21:54:56 +0000</pubDate>
		<dc:creator>Jonas</dc:creator>
				<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[HowTo - Como fazer]]></category>

		<guid isPermaLink="false">http://jf.eti.br/?p=2324</guid>
		<description><![CDATA[Com certeza você já deve conhecer diversas maneiras de realizar backup de sua base Mysql. Mas o objetivo deste howto é apenas uma variação de um script clássico de backup. Vamos ao problema: A maioria das pessoas utilizam este comando para backup: mysqldump -u root -pPASSWORD &#8211;all-databases &#124; gzip > /mnt/database`data &#8216; %m-%d-%Y&#8217;`.sql.gz Isso vai [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://t3.gstatic.com/images?q=tbn:ANd9GcTujGfG_525ypJuCgxY9dxaao2RKqvjRUH_ALg7nmHnY9UsERmPogxpDaFxhw" alt="" /></p>
<p>Com certeza você já deve conhecer <a href="http://www.noupe.com/how-tos/10-ways-to-automatically-manually-backup-mysql-database.html" target="_blank">diversas maneiras de realizar backup de sua base Mysql</a>. Mas o objetivo deste howto é apenas uma variação de um script clássico de backup.</p>
<p>Vamos ao problema:</p>
<p>A maioria das pessoas utilizam este comando para backup:</p>
<p>mysqldump -u root -pPASSWORD &#8211;all-databases | gzip > /mnt/database`data &#8216; %m-%d-%Y&#8217;`.sql.gz  </p>
<p>Isso vai gerar um backup de todos os bancos de dados de seu SGBD e compactar com o nome de <strong>data 03/22/2012.sql.gz</strong>. O problema esta ai, pois ele irá gerar todas as querys em um único arquivo, ou seja, se você quiser restaurar um único banco de dados, terá que procurar o trecho no dump que corresponde ao banco desejado.</p>
<p>A solução apresentada abaixo é uma alternativa, onde a partir de um laço, lê todos os elementos do SGBD, e gera um dump já compactado de cada banco, separadamente.</p>
<pre class="brush: shell">
#!/bin/bash
# backup mysql com --all-databases, mas separados cada banco em um único arquivo

USER=&quot;root&quot;
PASSWORD=&quot;senha&quot;
OUTPUTDIR=&quot;/var/lib/databases&quot;
MYSQLDUMP=&quot;/usr/bin/mysqldump&quot;
MYSQL=&quot;/usr/bin/mysql&quot;

# elimando arquivos de backup antigos
rm -rf $DIR/*

# lendo a lista de banco de dados
databases=`$MYSQL --user=$USER --password=$PASSWORD \
  -e &quot;SHOW DATABASES;&quot; | tr -d &quot;| &quot; | grep -Ev &#039;(Database|information_schema)&#039;`

# realizando o dump e compactando cada arquivo gerado
for db in $databases; do
    echo $db
    $MYSQLDUMP --force --opt --user=$USER --password=$PASSWORD \
    --databases $db | gzip &gt; &quot;$OUTPUTDIR/$db.gz&quot;
done
</pre>
<p>Com essa idéia, pode-se editar um pouco mais este script, como por exemplo compactar a pasta com todos os arquivos gerados, e já transferir para seu storage com Active Directory, por exemplo.</p>
<p>Aqui disponibilizo para download um script exatamente com essa idéia em prática.</p>
<p><a href="http://jf.eti.br/wp-content/uploads/script_bkp_mysql.txt" target="_blank">Script de Backup &#8211; Mysql &#8211; Com depósito no Storage &#8211; AD</a></p>
<p>Depois é só colocar no CronTab.</p>
<p>Referência: <a href="http://www.snowfrog.net/2005/11/16/backup-multiple-databases-into-separate-files/" target="_blank">snowfrog.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jf.eti.br/script-de-backup-dump-mysql-multiplos-bancos-em-arquivos-separados/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Remover árvore de diretórios em uma compactação TAR</title>
		<link>http://jf.eti.br/remover-arvore-de-diretorios-em-uma-compactacao-tar/</link>
		<comments>http://jf.eti.br/remover-arvore-de-diretorios-em-uma-compactacao-tar/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 19:43:39 +0000</pubDate>
		<dc:creator>Jonas</dc:creator>
				<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[HowTo - Como fazer]]></category>

		<guid isPermaLink="false">http://jf.eti.br/?p=2319</guid>
		<description><![CDATA[Se você trabalha com servidores Linux, provavelmente trabalha com processos de backups personalizados para todos os seus dados importantes. Sem dúvida as cópias de segurança acabam sendo armazenadas na forma de um arquivo.tar. Tudo funciona muito bem, as cópias são feitas, comprimidas e enviadas para um storage externo. Há apenas uma questão, sempre que você [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" src="http://ubuntubook2.files.wordpress.com/2011/03/tar-gz1.png" alt="" width="232" height="232" /></p>
<p>Se você trabalha com servidores Linux, provavelmente trabalha com processos de backups personalizados para todos os seus dados importantes. Sem dúvida as cópias de segurança acabam sendo armazenadas na forma de um <a href="http://pt.wikipedia.org/wiki/TAR" target="_blank">arquivo.tar</a>. Tudo funciona muito bem, as cópias são feitas, comprimidas e enviadas para um storage externo. Há apenas uma questão, sempre que você abrir um desses backups, ele irá incluir toda a árvore de diretórios acima da pasta onde os arquivos foram gerados.</p>
<p>Esse &#8220;problema&#8221; sempre me deixou chateado quando da criação de dumps de banco de dados. Por exemplo,vamos considerar que meu script de backup gere os arquivos de dumps e salve no diretório: <code><em>/var/lib/mysql/meu_banco</em>.</code> Eu gostaria de fazer um backup TAR do diretório<strong> meu_banco</strong>, e chama-lo de <span style="text-decoration: underline;"><strong>meu_banco.tar.gz</strong></span>.</p>
<p>Acontece que quando vou descompactar o arquivo meu_banco.tar.gz, eu vou ter um monte de subpastas inúteis, eu vou ter que fazer <a href="http://en.wikipedia.org/wiki/Drill_down" target="_blank">drill-down</a>, através da raíz onde eu descompactar, até /var/lib/mysql/meu_banco. Tudo que eu realmente quero é o diretório meu_banco, os demais (/var/lib/mysql) não me interessa.</p>
<p>Veja como é simples se livras desses diretórios. Antes de executar o comando TAR, primeiro você deve usar o comando CD para se mover até o diretório pai que contém o diretório que você deseja, não dentro da pasta que você irá compactar, no exemplo acima, você deve estar dentro de <em>/var/lib/mysql</em> e não dentro de <em>/var/lib/mysql/meu_banco</em>.</p>
<p>Eis a seqüência de comando para exemplo anterior:</p>
<pre class="brush: shell">cd /var/lib/mysql
tar -czf /pasta/onde/voce/ira/armazenar/meu_banco.tar.gz  meu_banco</pre>
<p>Com isso, ao descompactar o meu_banco.tar.gz terá apenas um único subdiretório, chamado meu_banco.</p>
<p>Agora, provavelmente você vai executar esses comandos em um script maior de backup, neste caso o comando CD direto não irá funcionar, ainda mais se o script estiver no /etc/init.d/script_bkp.</p>
<p>Felizmente, há uma solução fácil: você pode acrescentar vários comandos shell em conjunto, utilizando <code>&amp;&amp;</code> . Com <code>&amp;&amp;</code> , cada comando será executado e concluído antes do próximo começar, simulando a digitação de comandos em uma linha.</p>
<pre class="brush: shell">cd /var/lib/mysql &amp;&amp; tar -czf /pasta/onde/voce/ira/armazenar/meu_banco.tar.gz  meu_banco</pre>
<p>Pronto. <img src='http://jf.eti.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://jf.eti.br/remover-arvore-de-diretorios-em-uma-compactacao-tar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unix ToolBox &#8211; Tutoriais estilo &#8220;receita de bolo&#8221; para o cotidiano do profissional de TI que trabalha com Linux</title>
		<link>http://jf.eti.br/unix-toolbox-tutoriais-estilo-receita-de-bolo-para-o-cotidiano-do-profissional-de-ti-que-trabalha-com-linux/</link>
		<comments>http://jf.eti.br/unix-toolbox-tutoriais-estilo-receita-de-bolo-para-o-cotidiano-do-profissional-de-ti-que-trabalha-com-linux/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 21:53:32 +0000</pubDate>
		<dc:creator>Jonas</dc:creator>
				<category><![CDATA[Dicas Web]]></category>
		<category><![CDATA[HowTo - Como fazer]]></category>

		<guid isPermaLink="false">http://jf.eti.br/?p=2316</guid>
		<description><![CDATA[Unix Toolbox é uma coletânea de comandos e tarefas úteis no dia-a-dia do profissional de TI que trabalha com Linux. Um guia prático, com explicações detalhadas, porém é claro que você tem que saber o que esta fazendo. Os tutoriais estão divididos nas seguintes categorias: Sistema &#8211; Processos &#8211; Sistema de Arquivos &#8211; Rede &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" src="http://3.bp.blogspot.com/-KGhA1G5GxK0/TxGonubo08I/AAAAAAAAAlA/b7yKQGAHHVc/s1600/Unix-cheat-sheets.png" alt="" width="512" height="169" /></p>
<p>Unix Toolbox é uma coletânea de comandos e tarefas úteis no dia-a-dia do profissional de TI que trabalha com Linux. Um guia prático, com explicações detalhadas, porém é claro que você tem que saber o que esta fazendo.</p>
<p>Os tutoriais estão divididos nas seguintes categorias:</p>
<ul>
<li>Sistema &#8211; Processos &#8211; Sistema de Arquivos &#8211; Rede &#8211; SSH SCP &#8211; VPN com SSH &#8211; RSYNC &#8211; SUDO &#8211; Criptografar arquivos &#8211; Criptografar partições &#8211; Certificados SSL &#8211; CVS &#8211; SVN &#8211; Comandos úteis &#8211; Instalar software &#8211; Converter de mídia &#8211; Impressão &#8211; Bancos de dados &#8211; Quota em disco &#8211; Conchas &#8211; Scripting &#8211; Programação &#8211; Ajuda on-line</li>
</ul>
<p>O mais legal é que você pode ter acesso ao conteúdo de diversas formas, veja:</p>
<ul>
<li>Acessar diretamente o site:<br />
<a href="http://cb.vu/unixtoolbox.xhtml" target="_blank">http://cb.vu/unixtoolbox.xhtml</a></li>
<li>Versão completa em PDF com índice navegável.<br />
<a href="http://cb.vu/unixtoolbox.pdf" target="_blank">http://cb.vu/unixtoolbox.pdf<br />
</a></li>
<li>Versão completa em PDF em formato de livro, pronto para impressão.<br />
<a href="http://cb.vu/unixtoolbox.book.pdf" target="_blank">http://cb.vu/unixtoolbox.book.pdf</a></li>
<li>Versão enxuta, extraida do XML do site<br />
<a href="http://sleepyhead.de/howto/" target="_blank">http://sleepyhead.de/howto/</a></li>
</ul>
<p>Aqui você tem a muitos outros howtos:<br />
<a href="http://www.tekleisure.com/2012/01/25-most-useful-linux-unix-solaris.html" target="_blank">http://www.tekleisure.com/2012/01/25-most-useful-linux-unix-solaris.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jf.eti.br/unix-toolbox-tutoriais-estilo-receita-de-bolo-para-o-cotidiano-do-profissional-de-ti-que-trabalha-com-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto: Como mudar o range de anos dos campos de data do Lime Survey</title>
		<link>http://jf.eti.br/howto-como-mudar-o-range-de-anos-dos-campos-de-data-do-lime-survey/</link>
		<comments>http://jf.eti.br/howto-como-mudar-o-range-de-anos-dos-campos-de-data-do-lime-survey/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 15:24:12 +0000</pubDate>
		<dc:creator>Jonas</dc:creator>
				<category><![CDATA[HowTo - Como fazer]]></category>

		<guid isPermaLink="false">http://jf.eti.br/?p=2299</guid>
		<description><![CDATA[O Gerenciador de Questionários Lime Survey utiliza para os campos de data o módulo DatePicker do Jquery, porém por default o template amarra os anos do DatePicker entre 1980 e 2020, caso você necessite alterar este range, tem que fazer uma modificação diretamente em um arquivo, vejamos: 1. Edite o arquivo: qanda.php que fica na [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" src="http://www.awardspace.com/wp-content/uploads/2009/10/lime_survey.jpg" alt="" width="155" height="77" /></p>
<p>O <a href="http://www.limesurvey.org/" target="_blank">Gerenciador de Questionários Lime Survey</a> utiliza para os campos de data o módulo <a href="http://jqueryui.com/demos/datepicker/" target="_blank">DatePicker do Jquery</a>, porém por default o template amarra os anos do DatePicker entre 1980 e 2020, caso você necessite alterar este range, tem que fazer uma modificação diretamente em um arquivo, vejamos:</p>
<p><img class="alignnone" src="http://s15.postimage.org/d3lfzqf55/datepicker.gif" alt="" width="274" height="258" /></p>
<p>1. Edite o arquivo: <strong>qanda.php</strong> que fica na raíz de sua instalação do Lime Survey.</p>
<p># vim qanda.php</p>
<p>2. Procure a linha que seta o ano mínimo e máximo, e altere para o período desejado.</p>
<p>$minyear=&#8217;1980&#8242;;</p>
<p>$maxyear=&#8217;2020&#8242;;</p>
<p>Pronto, pode salvar e sair do arquivo.</p>
<p>Com isso no campo de data, será carregado o período que você configurou, simples assim.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://jf.eti.br/howto-como-mudar-o-range-de-anos-dos-campos-de-data-do-lime-survey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postgresql &#8211; Como fazer um dump de uma tabela específica de seu banco de dados</title>
		<link>http://jf.eti.br/postgresql-como-fazer-um-dump-de-uma-tabela-especifica-de-seu-banco-de-dados/</link>
		<comments>http://jf.eti.br/postgresql-como-fazer-um-dump-de-uma-tabela-especifica-de-seu-banco-de-dados/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 18:47:58 +0000</pubDate>
		<dc:creator>Jonas</dc:creator>
				<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[HowTo - Como fazer]]></category>

		<guid isPermaLink="false">http://jf.eti.br/?p=2262</guid>
		<description><![CDATA[Muito fácil: pg_dump -U &#60;usuario&#62; &#8211;inserts -t &#60;tabela&#62; &#60;banco&#62; &#62; dump.sql Um exemplo real: pg_dump -U postgres &#8211;inserts -t municipio geral &#62; municipios.sql &#160;]]></description>
			<content:encoded><![CDATA[<p>Muito fácil:</p>
<p>pg_dump -U &lt;usuario&gt; &#8211;inserts -t &lt;tabela&gt; &lt;banco&gt; &gt; dump.sql</p>
<p>Um exemplo real:</p>
<p><em>pg_dump -U postgres &#8211;inserts -t municipio geral &gt; municipios.sql</em></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://jf.eti.br/postgresql-como-fazer-um-dump-de-uma-tabela-especifica-de-seu-banco-de-dados/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

