17/03/2010

ad.

Linux: utilize o rsync para fazer backup

Há muitas formas de se copiar arquivos no linux, desde os básicos cp, rcp, scp, etc… mas uma das melhores é utilizando um pequeno aplicativo chamado rsync. Na verdade o que será feito é mais do que uma cópia, é uma sincronização. Se foi feita alguma mudança o aplicativo ira refletir isso. Ou seja, adicione os arquivos novos, retire os excluídos, altere as propriedades, etc… Se você sincronizar com  rsync, alterar um arquivo e fizer uma nova sincronização, apenas as partes alteradas daquele arquivo serão atualizadas, muito mais rápido que refazer tudo.

O formato do comando é muito simples

rsync [OPTION...] origem destino
Há muitas opções no rsync, sugiro um rsync –help para ver todas, mas vou dar uma lista bastante interessante e que serve a quase todos. No exemplo a seguir vou copiar recursivamente TODOS os diretórios e subdiretórios da minha pasta, mantendo as permissões e propriedade (no sentido de dono, ownership) dos arquivos, para um pendrive:

rsync -av /home/compdicas /media/disk/compdicas

a “/” final faz toda a diferença no diretório de origem. Seu eu escrever /home/compdicas/, o aplicativo cria uma pasta compdicas no destino e copia tudo. Seu eu não colocar a barra final, ele apenas copia os diretórios recursivamente para /media/disk/compdicas. Isso é fundamental para backups.

Opções:
-a, –archive: reúne uma série de opções em um mesmo comando, é o mesmo que -rlptgoD. De forma geral, copia recursivamente (-r), copia symlinks como symlinks (-l), preserva as permissões (-p), preserva os horários de criação, alteração, etc dos arquivos (-t),  preserva o grupo (-g), preserva o proprietário (-o) e o -D preserva devices e special files

-v, –verbose: o bom e velho verbose mostra o que está acontecendo. Você também pode utilizar -vv e -vvv para saber ainda mais sobre o que está acontecendo.

-z, –compress: Comprime o arquivo durante a transferência. É excencial se a transferência é feita entre dois computadores distintos, na mesma rede ou pela internet. Se for localmente, de um HD para outro do mesmo computador, é melhor não utilizar essa opção.

–delete: deleta no diretório a ser sincronizado os arquivos que foram excluídos no diretório de origem. atenção: muito cuidado com o comando delete, de fato, enquanto você se acostuma com o rsync é melhor não utiliza-lo, ou pelo menos substitui-lo pelo –dry-run

–dry-run: mostra o que o rsync faria (sem chegar a fazer nada). Muito bom para ver se era isso mesmo que você queria. Recomendo fortemente antes de sair utilizando o rsync, “brincar” bastante sempre com essa opção.

Assim, o nosso comando ficaria:

rsync -av –delete /home/compdicas /media/disk/compdicas

Sincronizando remotamente de forma segura (com SSH)
Uma das coisas boas do rsync é a facilidade em se utilizar o SSH para conectar a um servidor remoto de forma segura. Nada de ficar se expondo, basta indicar o destino na forma de um usuário em outra máquina. Antes porém, mais duas opções:

–progress: exibe o progresso da transferência

-e: especifica o shell a ser utilizado, no caso, SSH

O que, substituindo pelo seu nome de usuário, nome do servidor e diretórios, resultaria em :

rsync -avze ssh –delete –progress /home/compdicas/dir/    user@servidorremote.com.br:dir/

O programa, claro, irá solicitar a senha.Caso não queira ficar digitando a senha todas as vezes, utilize o seguinte procedimento para gera uma chave:

Crie uma chave (e pressione ENTER quando o sistema perguntar por uma passphrase):
ssh-keygen -t dsa

Em seguida, copie a chave para o servidor remoto com:
ssh-copy-id -i .ssh/id_dsa.pub user@servidorremoto.com.br

E finalmente o rsync (igual ao anterior):

rsync -avze ssh –delete –progress /home/compdicas/dir/    user@servidorremote.com.br:dir/


Espero que a dica tenha sido útil. Qualquer dúvida ou sugestão (vale elogio também :) ), não esqueçam de comentar.

O que são e como instalar arquivos .deb no ubuntu

Esse blog é pautado pelas perguntas que recebo. Essa é parece daquelas tão óbvias pra quem está a anos trabalhando com diversas linhas de linux, que provavelmente não me ocorreria a idéia de escrever sobre isso.

Você fez um download de um programa para o seu Ubuntu/Debian e a extensão é .deb, o que é isso?
É um pacote para o formato do debian. Nele já está tudo pronto para o programa ser instalado, todos os caminhos definidos, etc…

Além de simplificar a vida, também ajudam a manter o sistema em dia. De forma simplista, o que as atualizações automáticas fazem é verificar a versão de um pacote instalado com a versão disponível nos repositórios. Se a versão na rede for mais recente que aquela instalada, o download e a instalação são feitos. Por isso, sempre que for possível escolher entre um pacote e uma compilação, sugiro que instale o pacote.

Como instalar um arquivo .deb
A instalação não poderia ser mais simples. Faça o download e abra o arquivo e dê um duplo clique nele. Abrirá o instalador de pacotes (package installer). Apenas clique em “Instalar pacote”. É só isso. Mesmo.

Se preferir utilizar a linha de comando, digite o comando abaixo, trocando pacote-versao.deb pelo nome do arquivo que deseja instalar

dpkg -i pacote-versao.deb

Pronto, seu pacote está instalado. E se estiver nos repositórios, sempre que houver uma atualização você será notificado.

Editar o arquivo hosts no Windows Vista

Quem desenvolve para web costuma configurar o computador para agir como um servidor, Instalando um servidor de web e alguma linguagem para rodar aplicativos (php, asp, java, etc…).

No entanto, é preciso informar em qual endereço está o site de testes. Para isso basta editar o arquivo hosts, que é uma forma estática de ligar IPs a nomes.

Porém, quem tentou fazer isso no windows vista deve ter esbarrado em um aviso de erro, informando que o usuário não possui permissão para editar o arquivo. Eis a receita de como passar por isso.

  1. Abra o Notepad com privilégios de administrador. Para fazer isso cliquem em Iniciar -> Todos os Programas -> Acessórios e em seguida clique com o botão direito do mouse sobre o programa Notepad e selecione abrir como administrador.
  2. Agora basta abrir no Notepad o arquivo c:\windows\System32\drivers\etc\hosts

Para inserir um nome meudominio no hosts, basta adicionar a linha abaixo e salvar o arquivo:

127.0.0.1 meudominio