Feeds:
Posts
Comentários

Archive for maio \29\+00:00 2007

Teste de Einstein

Esses dias atras, andando pela net, encontrei o Teste de Einstain na net. Já sabia de sua existência, porém nunca me dei ao trabalho de tentar fazê-lo. Essa semana, resolvi baixar e fazê-lo. Até que é bem legalzinho, você fica bem “vidrado” tentando resolvê-lo. Porém, não concordo que seja apenas 2% da população mundial que seja capaz de resolvê-lo. Não me considero nenhum gênio, mas eu consegui terminar o teste ;-). Segundo a descrição do teste, ela diz o seguinte:
” Este é o famoso teste do Einstein. Após elaborar este teste, Einstein afirmou que apenas 2% da população terrestre (mais ou menos 120 milhões) seria capaz de resolvê-lo. Será que você também faz parte desse “seleto” grupo? “.
Para quem ficou interessado, e está disposto a tentar, pode-se baixar neste link, ou fazer o teste online neste outro link. Abaixo tem a Screenshot de quando eu terminei o teste :D.

Teste_Einstein

Read Full Post »

Dicas de Backup na Prática

Há diversas maneiras e tipos para se fazer um backup. As principais foram descritas no meu artigo anterior. Porém este tem como objetivo descrever
algumas dicas para soluções práticas que enfrentamos no dia-a-dia. Não sou especialista em backups e sei que existem diversas outras formas do mesmo ser feito. Aqui, estou tentando passar um pouco de conhecimento prático e algumas dicas mais funcionais e simples para implementar seu backup.

Como Planejar um Backup

Dependendo do investimento em que a empresa está disposta a fazer em relação as rotinas de backup, você poderá fazer um Backup Full, Incremental ou Diferencial, como está explicado em meu artigo anterior. Os principais fatores que devemos levar em conta ao planejar um backup, são:
Custo/Benefício, Investimento da empresa, Tipo de armazenamento, Local de armazenamento (rede, hd, servidor de backups, etc) tamanho que terá o
backup, tempo que vai demorar para fazer o backp, confiabilidade e facilidade em seu uso (principalmente restauração). Claro que, geralmente
seu chefe irá pedir para fazer o melhor backup com o menor investimento possível.

Tamanho dos Dados: Empresas que tem poucos dados para se armazenar (consdere pouco, menos de 30GB) pode-se usar dvd ou um outro hd para armazenar os arquivos. Já em uma empresa de médio porte, (backups entre 30G a 100GB) as soluções que mais se encaixam seriam armazenamento em fitas Dat ou em um servidor específico para backups. Empresas de grande porte, há outras técnicas que poderiam ser usadas, como, a de adquirir um robo de backups.

Envestimento da empresa: Mas como a maioria das coisas na vida gira em torno do dinheiro, seria totalmente desnecessário e inviável adquirir um robo de backups em uma empresa que não tem mais de 10 computadores na rede. E, com certeza seu chefe será o maior incentivador para você gastar o mínimo possível ao criar o backup.

Abaixo, vou dar algumas sugestões de maneiras de fazer um backup em empresas de pequeno e médio porte.

Empresa de Pequeno Porte: Provavelmente, por se tratar de pouca quantidade de dados, não haveria necessidade de um backup diário total. Seria interessante fazer um backup Diferencial ou Incremental durante um horário que ninguém estiver utlizando os arquivos (a hora de almoço é altamente indicada para deixar fazendo o backup nesses casos). Aqui poderia ser utilizado o rsync para fazer o backup diferencial. Um backup semanal poderia ser gravado em um dvd-rw. Caso o tamanho do backup ultrapasse a capacidade do dvd, você tem 2 alternativas, ou compactar o backup, ou usar o comando split para dividir o arquivo em 2 ou 3 partes, para que caiba cada parte em seu respectivo DVD. Caso você ache que seria melhor armazenar o backup em um hd, seria interessante gerar um script de backup utilizando o tar para que não ocupe tanto espaço em disco. Atualmente, com a tecnologia dos hds sendo inovada a cada dia, uma boa idéia seria usar um hd USB, assim, não seria necessário nem ter um servidor de backups, apenas seria necessário concectá-lo em uma estação com suporte a usb, e deixar o script agendado no sistema. Abaixo, estou inserindo um “script” em que geraria o backup e compactaria no formato bzip2 (uma compactação melhor, mas que requer mais processamento), gerando então o arquivo de backup localmente, com a data em que foi feito.

tar zcf backup-full-`date +%Y%m%d`.tar.gz /home/Dados

Mas, para não termos que fazer um backup full todos dias, poderiamos usar a forma Incremental com o seguinte comando:

find /home/Dados -mtime -1 -type f -print | \
tar zcvf server-bkp-incremental-20060212.tar.gz -T –

Aqui o comando find vai procurar por arquivos modificados numa faixa de 1 dia (usado para backups incrementais diários) e armazená-los no arquivo
server-bkp-incremental-20060212.tar.gz.

Empresa de Médio Porte
Aqui mostrarei algumas técnicas que podem ser utilizadas em empresas que germa mais de 30 gb de Dados em sua rede. Nesse caso, seria interessante
fazer um investimento um pouco maior, e ter um servidor de backups para faze-los diariamente. Algumas maneira de fazer isso, seria através de ftp,
ssh, rsync, softwares como o amanda, ou mesmo o bom e velho shell script combinado com o tar. Abaixo, estou disponibilizando o script de backup que
eu utilizo na empresa em que eu trabalho.

cd /home/
tar -zcf – Dados | ssh renato@192.168.3.15 “cat > bkp_servidor-`date
+%Y%m%d`.tar.gz”

O que eu faço é que uso meu computador como segundo servidor de backup (o primeiro é o servidor que gera os backups em fitas Dat). O servidor se
conecta atraves de ssh no meu computador jogando o backup do diretório /home/Dados compactado com a data em que o backup foi feito. Com isso, eu
não gasto espaço do hd do servidor, e tenho um backup totalmente automatico (o backup é feito de segunda a sexta as 23:00) e que se torna muito fácil de restaurar em caso de algum acidente. Abaixo, segue mais três modelos de backup, o primeiro sendo um script muito eficiente que gera o backup localmente, e os outros 2, modelos de scripts através de ftp e ssh.

Script Backup (Desenvolvido por Vanderlie Pollon)

#! /bin/sh
####################################################################
# #
# Nome do Script: bkp.sh #
# Data ………: dd/mm/aa #
# Disciplina …: SCO/ADS #
# Desenvolvido por …: Vanderlei Pollon #
# Versao …….: 1.0 #
####################################################################

# Finalidade deste script: #
# Este script gera um pacote TAR com o conteúdo do diretorio /home.#
# A ideia e utiliza-lo para backup (o nome ja diz isso). O pacote #
# gerado deve conter todos os arquivos do /home, exceto aqueles que#
# contenham a string “lixo” no seu nome e aqueles cujo nome finali-#
# ze por “.ant”. O arquivo gerado deve ser compactado pelo gzip e o#
# seu nome deve seguir o modelo bkp_home_nameserver_dd-mm-aaaa.tgz #
# Onde: #
# nameserver= nome do servidor (sem o dominio) #
# dd-mm-aaaa= data da backup #
# #
# Este script, sempre que rodar, deve verificar se esta incluido na#
# agenda do sistema. Se este script nao estiver na agenda do sis- #
# tema deve se auto-instalar para rodar, todos os dias, as 22:00, #
# exceto aos domingos (pois aos domingos o nosso servidor esta des-#
# ligado). #
# Suponha que este script esta no diretorio /usr/bin #
# #
####################################################################
# #
# Seguindo esta filosofia, este script esta todo baseado en varia- #
# veis que estao definidas a seguir.
# #
####################################################################
# OBS -> lembre-se de que para executar este script e necessario que #
# ele esteja com a permissao “x”. Utilize o comando chmod. #
# #
####################################################################

# Definicao das variaveis utilizadas neste script

DATA_DO_BACKUP=`date +%d-%m-%Y` #Data do backup.

NOME_DO_SERVIDOR=`hostname -a` #Nome da maquina, sem o dominio

NOMEFIXO=”bkp_home” #A parte fixa do nome do pacote

DIRETORIO=”/opt” #Onde o arquivo tar sera armazenado

TAR=”/bin/tar” #O binario que iremos utilizar

OPCOES1=”–exclude “*.ant”” #Exclui os arquivos com final “.ant”

OPCOES2=”–exclude “*lixo*”” #Exclui os arquivos com a string “lixo”

OPCOES3=”-zcvf” #Opcoes para a gerar e compactar

ARQ_CRON=”/etc/cron.daily/bkp.sh” #Arquivo da agenda do sistema

NOME_SCRIPT=”/usr/bin/bkp.sh” #Caminho absoluto do script de backup

USER=”root” #Usuario que rodara o script na cron

AGENDA=”00 22 * * 1-6″ #Data/hora na cron para rodar o script

#(cinco campos separados por um espaco)

LINHA=$AGENDA” “$USER” “$NOME_SCRIPT #Linha que sera incluida na cron

###################################################################

# Vamos iniciar.
# Limpamos a tela.
clear

#Vamos para o diretorio onde o pacote gerado ficara
cd $DIRETORIO

echo “Iniciando a geracao do pacote tar ….”; sleep 1

$TAR $OPCOES1 $OPCOES2 $OPCOES3 “$NOMEFIXO”_”$NOME_DO_SERVIDOR”_”$DATA_DO_BACKUP”.tgz /home

# Testa o codigo da saida (se o comando foi feliz)

if [ $DIRETORIO -ne 0 ]; then
echo “Alguma coisa saiu errada ….”
echo “”
echo “Contate o administrador do sistema.”;sleep 1
exit 1
fi
echo “Ufa, terminei :)”
echo “”
echo ” O arquivo gerado encontra-se no diretorio $DIRETORIO”
# Verifica se este script esta ativo na crontab do sistema
cat $ARQ_CRON |grep $NOME_SCRIPT |grep -v “#” >/dev/null
if [ $NOME_SCRIPT -ne 0 ]; then
echo “Este script nao esta ativo na agenda do sistema”
echo “Vou inclui-lo para voce …”; sleep 1
echo “$LINHA”>>$ARQ_CRON
fi
exit 0

ssh
O SSH permite você acessar máquinas remotamente, e seus dados trafegam criptografados. Além disso, ele também permite transferir arquivos pelo
protocolo e isso dá uma segurança ainda maior para seus backups, na hora de transferí-los remotamente. Para trasnferir o arquivo de backup para a
máquina remota, utilize o comando:

scp arquivo.tar.gz usuario@host:/diretorio

O programa irá lhe perguntar a senha do usuário do host remoto. Indique-a e o arquivo será transferido. Devido ao arquivo estar sendo transferindo de forma criptografada, o seu sistema utilizará um pouco mais de processador para criptografar os dados para a máquina remota. O mesmo acontece com o servidor remoto, que precisa descriptografar para receber o arquivo. O SSH sempre pede senha para conectar remotamente (óbvio), mas para automatizar esse processo em shell-scripts, você pode criar chaves de confiança entre máquinas para que elas loguem-se entre si sem necessitar de senha alguma. Consulte a documentação do ssh e outros tutoriais para saber como fazer isso.

FTP
Aqui vamos usar como usuário: backup e como senha: segredo. Utilize o
seguinte script para automatizar o processo:

#!/bin/bash
#
DATA=`date +%Y_%m_%d`

# Dados do arquivo de backup
MAQUINA=”sakura”
ARQUIVO=”backup-full-$MAQUINA-$DATA.tar.gz”
DIRETORIOS=”/etc /var/log”

# Dados do servidor FTP
HOST_FTP=”192.168.0.1″
USUARIO_FTP=”backup”
SENHA_FTP=”segredo”

# A partir daqui não precisa mais editar.
# Cria o arquivo .tar.gz no /tmp (Temporário)
cd /tmp
tar zcf /tmp/$ARQUIVO $DIRETORIOS

# Acessa o FTP e coloca os arquivos
ftp -in

Read Full Post »