Sincronize arquivos entre dois computadores conectados à mesma rede usando o comando rsync [duplicate]

1

Eu tenho dois computadores conectados à mesma rede, digamos, Computador A e Computador B. O computador A tem alguns arquivos de backup em um diretório que precisa ser sincronizado com o Computador B (um espelho exato deve ser criado). Aqui a condição é que eu tenho que fazer isso usando o comando rsync .
Como posso fazer isso? Devo ter que fazer isso usando o nome do host dos computadores.
Por favor me ajude o mais cedo possível. Agradecemos antecipadamente

    
por Rudra 31.01.2013 / 06:26

2 respostas

2

rsync src_user@src_hostname:src_dir/ trg_user@target_hostname:target_dir/

para verificação de opções

rsync --help

ou

man rsync
    
por 31.01.2013 / 06:31
1

Se você quiser torná-lo automático, você deve cobrir algumas noções básicas.

Primeiro rsync conecta através do ssh. Você tem que se certificar de que o usuário, que você vai usar para o rsyncing, tenha a chave ssh instalada no computador remoto (vou usar o usuário "root" como exemplo).

2º tome uma decisão exatamente como você vai rsyncing (do servidor para o servidor de backup ou do servidor de backup para o servidor)
Eu farei isso enquanto o script estiver sendo executado no servidor de backup.

  • Gerar chave no servidor de backup (execute o comando)

    $ ssh-keygen
    
  • Copie a chave gerada para o computador remoto (servidor cujos arquivos devem ser copiados):

    $ ssh-copy-id -i /root/.ssh/id_rsa.pub root@server-ip:
    

agora seu servidor se conectará ao servidor remoto sem solicitar senha.
daqui você pode fazer algo assim:

#!/bin/bash
## Rsync script
###
PATH=/usr/bin:
rsync -auvz root@server-ip:/path/to/directory/ /backup-server/path/to/backup/

esteja ciente do fato de que:

  1. se você colocar "/" no final dos caminhos, significa "sincronizar o conteúdo desse diretório" ( /path/to/dir/ )
  2. se você não colocar um "/" ele irá rsync todo o diretório ( /path/to/dir )
por 31.01.2013 / 07:50

Tags