Rsync – Sincronizar pastas por ssh
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
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.
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.
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
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…