sábado, 20 de abril de 2013

Mudar a senha do root Ubuntu pelo terminal

Você, por acaso, esqueceu ou deseja mudar a senha do root no Ubuntu, mas não sabe como? É simples. Abra o Terminal e nele digite:

 sudo passwd root

Então digite sua nova senha e em seguida redigite-a. Pronto. Sua senha do root foi mudado.

Curiosidade: Sabe o que significa o comando SUDO? 
R: Super User DO. "Fazer como super usuário". No caso, o Super Usuário se refere ao root. Por isso, recomenda-se usar o SUDO sempre, ao invés de logar-se como root na maquina, fazendo isto só em último caso (quando o sistema assim pedir). 

segunda-feira, 15 de abril de 2013

Usando o rsync


O rsync é um grande aliado na hora de fazer backups ou quando é necessário sincronizar duas pastas com um grande volume de arquivos. Ele permite sincronizar o conteúdo de duas pastas, transferindo apenas as modificações. Ele não trabalha apenas comparando arquivo por arquivo, mas também comparando o conteúdo de cada um. Se apenas uma pequena parte do arquivo foi alterada, o rsync transferirá apenas ela, sem copiar novamente todo o arquivo.
Ele é uma forma simples de fazer backups incrementais de grandes quantidades de arquivos, ou mesmo partições inteiras, mantendo uma única cópia atualizada de tudo em um HD externo ou num servidor remoto. Este backup incremental pode ser atualizado todo dia e complementado por um backup completo (para o caso de um desastre acontecer), feito uma vez por semana ou uma vez por mês.
Para instalar o rsync, procure pelo pacote "rsync" no gerenciador de pacotes. No Debian instale com um "apt-get install rsync" e no Mandriva com um "urpmi rsync".
Para fazer um backup local, basta informar a pasta de origem e a pasta de destino, para onde os arquivos serão copiados, como em:
$ rsync -av /mnt/hda6/trabalho/ /mnt/backup/
A opção "-a" (archive) faz com que todas as permissões e atributos dos arquivos sejam mantidos, da mesma forma que ao criar os arquivos com o tar, e o "v" (verbose) mostra o progresso na tela.
A cópia inicial vai demorar um pouco, mais do que demoraria uma cópia simples dos arquivos, mas, a partir da segunda vez, a operação será muito mais rápida, já que serão copiadas apenas as mudanças.
Note que neste comando estamos copiando a pasta "trabalho" recursivamente para dentro da "/mnt/backup", de forma que seja criada a pasta "/mnt/backup/trabalho". Se omitíssemos a barra, como em "rsync -av /mnt/hda6/trabalho /mnt/backup/", o rsync copiaria o conteúdo interno da pasta diretamente para dentro da "/mnt/backup". Como pode ver, a barra final é importante dentro da sintaxe do rsync.
Se algum desastre acontecer e você precisar recuperar os dados, basta inverter a ordem das pastas no comando, fazendo com que a pasta com o backup seja a origem e a pasta original seja o destino, como em:
$ rsync -av /mnt/backup/trabalho/ /mnt/hda6/trabalho
O rsync é bastante prático para automatizar backups locais, como em casos em que o servidor possui dois HDs e você deseja que o segundo armazene uma cópia completa dos arquivos do primeiro, para o caso de qualquer eventualidade. Um exemplo de script de backup simples para esta função seria:
#! /bin/sh
mount /dev/sdb1 /mnt/sdb1
rsync -av --delete /var/ /mnt/sdb1/ >> /tmp/rsync.log
rsync -av --delete /home/ /mnt/sdb1/ >> /tmp/rsync.log
rsync -av --delete /etc/ /mnt/sdb1/ >> /tmp/rsync.log
umount /mnt/sdb1
hdparm -S 24 /dev/sdb
Neste exemplo, estou salvando cópias das pastas "var", "home" e "etc" na partição "/dev/sdb1", montada pelo script dentro da pasta "/mnt/sdb1". O ">> /tmp/rsync.log" faz com que a saída dos comandos seja salva no arquivo especificado, de forma que você possa verificar as mensagens no dia seguinte, em busca de erros.
O "--delete" faz com que arquivos apagados na pasta original sejam apagados também na pasta do backup, fazendo com que ela se mantenha como uma cópia fiel. Naturalmente, a opção pode ser removida do comando se o objetivo é fazer com que o backup mantenha arquivos antigos, de forma que você possa recuperá-los posteriormente, caso necessário.
Uma peculiaridade do script é que a partição é montada no início do script e desmontada no final. A idéia seria que o segundo HD fosse usado apenas para o backup e ficasse desativado no restante do tempo, de forma que o desgaste (e a possibilidade de qualquer defeito mecânico) seja reduzido. O comando "hdparm -S 24 /dev/sdb" executado no final do script ajusta o gerenciamento de energia para o HD, fazendo com que ele entre em modo standby (onde os discos param de girar, as cabeças de leitura ficam estacionadas e apenas parte dos componentes da placa lógica ficam ativos) depois de 2 minutos de inatividade. Com isso, o HD será ativado no início da backup e ficará dormindo todo o resto do tempo, praticamente sem consumir energia.
Este script poderia ser executado uma vez por dia usando o cron, de forma que você tivesse sempre um backup do dia anterior à mão, pronto para recuperar qualquer arquivo deletado acidentalmente. Naturalmente, este backup local deveria ser complementado por algum backup remoto, que permitisse recuperar os arquivos em casos de catástrofes.

sexta-feira, 12 de abril de 2013

Rsync no Linux


Como utilizo a distribuição Debian, a instalação do mesmo se faz com apenas um comando:
# apt-get install rsync
Se você preferir, pode obter o software direto na fonte. Seu site oficial é:
  • http://rsync.samba.org
E seu download pode ser obtido em:
  • ftp://rsync.samba.org/pub/rsync
Para a comunicação entre duas máquinas com rsync funcionar, será necessário:
  • * o programa rsync instalado em ambas as máquinas;
  • * o servidor SSH (sshd) rodando no servidor.
Nota: se a comunicação for bilateral (ambas as máquinas enviam e recebem arquivos) o serviço SSH precisará estar rodando em ambas as máquinas.
Formas de uso
Para cada situação anteriormente citada, o rsync apresenta uma sintaxe levemente diferente. Vamos dar uma conferida em cada uma delas.
Sincronizando diretórios locais
Uso: rsync [opções] origem destino
Você tem um diretório recheado com arquivos importantes e deseja manter uma cópia fiel do mesmo em outra localidade. Para copiar /home/henrique/artigos para para /var/backups/artigos, executamos:
$ rsync -av –delete-after /home/henrique/artigos/ /var/backups/artigos/
Nota: supondo que /var/backups/artigos está criado e tenho permissões de escrita no mesmo.
Costumo utilizar a seqüencia de opções “-av –delete-after” por considerar que nelas estão inclusas todas as funcionalidades que necessito. Você pode optar em confiar cegamente em minhas palavras ou dar uma breve conferida na página de manual do software (man rsync) para descobrir o significado de cada opção.
Sincronizando arquivos locais para um servidor remoto
Um pré-requisito para enviar seus arquivos para o servidor remoto é possuir uma conta de usuário no sistema. Sendo assim, sua forma de uso é:
rsync [opções] origem usuario@host:destino
Supondo que o diretório /var/backups/artigos está localizado no servidor remoto cujo endereço IP é 192.168.254.1 e minha conta de usuário possui login “henrique”, executamos:
$ rsync -av –delete-after /home/henrique/artigos/ henrique@192.168.254.1:/var/backups/artigos/
Surgirá um prompt de senha, digite-a e pronto, os arquivos serão copiados.
Sincronizando arquivos do servidor para sua máquina local
Esta situação também requer um login para autenticação no servidor, a menos que o mesmo esteja configurado para aceitar conexões de usuários guest, fato comum em servidores mirrors, porém este assunto está fora do escopo do artigo. Se você entendeu como funciona o comando anterior, basta inverter a ordem dos parâmetros:
$ rsync -av –delete-after henrique@192.168.254.1:/var/backups/artigos/ /home/henrique/artigos/
Listando arquivos do servidor
Esta é forma de uso mais simples do rsync e seu pré-requisito é o de possuir login de autenticação no servidor (ou guest). Sintaxe:
rsync [opções] usuario@host:diretorio
Se você deseja listar o diretório /etc do servidor, pode usar o comando:
$ rsync -av henrique@192.168.254.1:/etc/
O “pulo do gato” dessa situação é a omissão do diretório de destino.
Espero ter contribuído com esse artigo!