Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Rsync sem senha, Notas de estudo de Cultura

Rsync sem senha

Tipologia: Notas de estudo

2012

Compartilhado em 05/06/2012

carlos-rosa-17
carlos-rosa-17 🇧🇷

5

(2)

16 documentos

1 / 5

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Rsync sem senha
por Paulino Michelazzo - paulino@michelazzo.com.br
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.
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe Rsync sem senha e outras Notas de estudo em PDF para Cultura, somente na Docsity!

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

backup.sh

#Script para fazer copia de arquivos do servidor para a maquina de backup

Criado por Paulino Michelazzo - [email protected]

Versao 1.0 - marco/

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

backup.sh

#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!".