Celso R.

Rsync – Sincronizar pastas por ssh

Posted in GNU/Linux, Software by Celso R. on 19 de Abril de 2007

Rsync é um programa que sincroniza ficheiros ou arquivos em localizações diferentes mas comparando versões diferentes ou já existentes evitando trafego desnecessário.

Vou explicar como actualizar duas pastas em pcs diferentes por ssh.

Instalar rsync e ssh nos dois pcs:

#aptitude install rsync
#aptitude install ssh

Têm várias opções que podem ver no man rsync:

–delete : delete files that don’t exist on sender (system)
-v : Verbose (try -vv for more detailed information)
-e “ssh options” : specify the ssh as remote shell
-a : archive mode
-r : recurse into directories
-z : compress file data

Sincronizar por exemplo a pasta música do pc1 para o pc2:

rsync -r -a -v -e “ssh -l userpc2” /home/userpc1/musicas 192.168.1.3.:/home/userpc2/

Vai copiar os files que existem na pasta /home/userpc1/musicas e não existem na pasta /home/userpc2/musicas (se o directório não existe é criado).

Atenção que o último comando é mesmo assim /home/userpc2/ e não /home/userpc2/musicas. Se puserem /home/userpc2/musicas ira criar uma nova pasta e ficarão os ficheiros em /home/userpc2/musicas/musicas (fala a experiência).

Para sincronizar ao contrário é como é lógico trocar os caminhos:

rsync -r -a -v -e “ssh -l userpc2” 192.168.1.3.:/home/userpc2/musicas /home/userpc1/

Mais uma vez atenção às pastas.

Se quiserem fazer um .sh que faça automaticamente basta criar um file (por exemplo “sincronizar”)

#!/bin/sh

#exemplo

#rsync musicas

rsync -r -a -v -e “ssh -l userpc2” 192.168.1.3.:/home/userpc2/musicas /home/userpc1/
rsync -r -a -v -e “ssh -l userpc2” /home/userpc1/musicas 192.168.1.3.:/home/userpc2/

#rsync documentos

rsync -r -a -v -e “ssh -l userpc2” 192.168.1.3.:/home/userpc2/documentos /home/userpc1/
rsync -r -a -v -e “ssh -l userpc2” /home/userpc1/documentos 192.168.1.3.:/home/userpc2/

#isto mantém ambos os pcs com os mesmo ficheiros.

Se copiarem o ficheiro sincronizar para /usr/bin/ podem executá-lo bastando escrever na consola $sincronizar

4 Respostas

Subscribe to comments with RSS.

  1. Hugo said, on 28 de Maio de 2007 at 3:56

    Decida se você é brasileiro, português ou inglês… pois no mesmo texto você chama arquivo de “ficheiro”, “arquivo” e “file”.

    No mais obrigado pelo texto.

  2. celsor said, on 28 de Maio de 2007 at 18:21

    Arquivo refere-se a uma pasta. Não é sinónimo de ficheiro.

    http://www.priberam.pt/dlpo/definir_resultados.aspx?pal=ficheiro
    http://www.priberam.pt/dlpo/definir_resultados.aspx?pal=arquivo

    Quanto ao file(s) são lapsos induzidos pelo normal contacto do termo na informática.

  3. Sandro Marcos said, on 9 de Agosto de 2007 at 19:15

    Simplificando os camandos acima:
    se voce estiver na maquina origem: ex: 192.168.0.10
    e quer sincronizar a pasta \lixo para da maquina 192.168.0.11 digite:
    #rsync /lixo/* -avz -e ssh 192.168.0.11:/lixo
    vai surgir uma pergunta voce responde yes
    vai pedir a password, digete em seguida, ai voce vai ver os dados passando na tela ai so confira os dados na pasta de destino, esta tudo ok.

    se voce estiver na maquina destino: 192.168.0.11
    e quer sincronizar a pasta \lixo para a maquina 192.168.0.10 digite:
    #rsync -avz -e ssh 192.168.0.10:/lixo* /lixo
    vai surgir uma pergunta voce responde yes
    vai pedir a password, digete em seguida, ai voce vai ver os dados passando na tela ai so confira os dados na pasta de destino, esta tudo ok.

    so lembrando as opcoes do rsync sao muitas verifique o que voce vai precisar usar.

    Sandro Marcos da Silva

  4. Sergio Blog 2.4 said, on 23 de Setembro de 2007 at 22:44

    Mantendo o seu trabalho sincronizado em duas mquinas distintas

    Existem vrias coisas que eu adoro nos sistemas *unix… uma delas a variedade de maneiras de se fazer algo, para todos os gostos e perfis tecnolgicos…

    O HD (hd) da minha mquina principal est morrendo… ao lig-la recebo a mensagem do sistem…


Os comentários estão fechados.