



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Rsync sem senha
Tipologia: Notas de estudo
1 / 5
Esta página não é visível na pré-visualização
Não perca as partes importantes!




Rsync sem senha
por Paulino Michelazzo - [email protected]
Pode parecer estranho o titulo do tutorial. E estranho mesmo. Mas pior seria o verdadeiro titulo como "rsync utilizando SSH sem que você tenha que digitar a senha de acesso todas as vezes que rodar o script". Como este título seria muito grande, resolvi abreviar e explicar ao longo do tutorial.
Todos nos temos a necessidade de fazer cópias de segurança (ou backup) de informações, sejam estas entre estacoes e um servidor, entre servidores ou ate mesmo entre estacoes. O Linux* conta com varias ferramentas interessantes para estas tarefas, sendo uma delas o rsync, um pequeno aplicativo que permite a copia de arquivos de uma maquina para outra de forma segura.
Nao estarei aqui discutindo como usar o rsync mas sim como permitir que um script acesse um servidor ou outra maquina sem que o usuário tenha que digitar a senha de acesso, podendo assim agendar o script para que seja executado de tempos em tempos.
Como fazer
Para que não seja necessário informar a senha todas as vezes que vamos fazer uma copia dos arquivos de uma maquina e preciso exporta-la para a maquina remota. Com isso, a maquina local (que ira receber os arquivos), pode sem complicações fazer executar os comandos necessários para a operação.
Para exportar a senha, use os seguintes comandos:
# ssh-keygen -t dsa -f ~/.ssh/id_dsa
# cat ~/.ssh/id_dsa.pub | ssh root@maquina_remota 'cat - >> ~/.ssh/authorized_keys'
# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
A primeira linha faz com que seja criada uma chave DSA e esta seja armazenada no arquivo id_dsa. Observe que neste caso esta sendo usado o parâmetro DSA devido ao suporte ao SSH versão 2. Se seus sistemas somente suportam SSH versão 1, mude esta opção para rsa1.
As outras duas linhas colocam a chave criada dentro do arquivo de chaves autorizadas tanto na maquina que serve os arquivos quanto na que recebe. Na segunda linha troque maquina_remota pelo endereço IP da maquina que vai servir os arquivos.
Pronto! Agora podemos criar um script para fazer a copia dos arquivos:
#!/bin/bash
#Script para fazer copia de arquivos do servidor para a maquina de backup
rsync -avz root@maquina_remota:/origem_dos_dados/ /destino_dos_dados/
E podemos agendar para que este script seja executado todas as madrugadas as 2 da manha, colocando a seguinte linha dentro do arquivo /etc/crontab
0 2 * * * root /etc/backup.sh
Pronto! Agora todos os dias as 2 da manha, os arquivos da mquina remota serao copiados, em suas ultimas versões/alterações para a maquina de destino (ou local), permitindo que, em caso de qualquer problema, estes possam ser colocados novamente nos seus devidos lugares.
Incrementando o script
Uma reclamação existente e que não existe um arquivo de log para o acompanhamento do que foi feito pelo script. Mas este problema pode ser resolvido com um redirecionamento de saída de tela para um arquivo, da seguinte forma:
#!/bin/bash
#Script para fazer copia de arquivos do servidor para a maquina de backup
$ rsync -Cravzp /home/fabio/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 Cravzp 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 é 10.0.0.5 e minha conta de usuário possui login
"fabio", executamos:
$ rsync -Cravzp /home/fabio/artigos/ [email protected]:/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 -Cravzp [email protected]:/var/backups/artigos/ /home/fabio/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 -Cravzp [email protected]:/etc/
O "pulo do gato" dessa situação é a omissão do diretório de destino.
Bom, chegamos aos finalmentes. Se o seu provedor ainda não possui rsync
instalado em seus servidores Linux, faça lobby, esperneie e em último caso,
mostre este artigo ao departamento de suporte técnico do mesmo.
Um belo caso de grande utilidade do rsync é o próprio Viva o Linux.
Mantenho o site atualizado através deste software e se meu provedor não
tivesse rsync, com certeza eu teria procurado outro.
E o pensamento do dia: "FTP é coisa de cliqueiro, já era. FTP = (F)oi-se o
(T)empo (P)eixe!".