- É eficaz copiar e sincronizar arquivos para ou a partir de um servidor remoto.
- Permite cópia de links, propriedades de arquivos como utilizador, grupos e permissões.
- É mais veloz do que o scp ( Secure Copy ), porque rsync usa protocolo de atualização remota que permite transferir apenas as diferenças entre dois conjuntos de arquivos. Na primeira vez, ele copia todo o conteúdo de um arquivo ou um diretório de origem para o destino, mas na próxima vez, ele copia apenas os blocos alterados e bytes para o destino.
- Rsync consome menos banda , uma vez que usa o método de compressão e descompressão durante o envio e recebimento de dados em ambas as extremidades.
VÁRIAS OPÇÕES DO COMANDOS RSYNC
- -V:verbose
- -R:cópias de dados de forma recursiva (mas não preservam timestamps e permissão durante a transferência de dados
- -A:modo de arquivamento, o modo de arquivo permite a cópia de arquivos de forma recursiva e preserva links simbólicos, permissões de arquivos, posses utilizador e grupo e timestamps
- -Z:arquivos serão comprimidos
- -H:legíveis, saída em um formato legível
COMO COPIAR / SINCRONIZAR ARQUIVO E DIRETÓRIO NUM SERIDOR LOCAL COM RSYNC
Este comando vai sincronizar um único arquivo em uma máquina local. neste exemplo, o arquivo host.pid é copiado/ sincronizado para o diretório /backup/meusbackups
rsync -zvh /var/lib/host.pid /backup/meusbackups created directory backup/meusbackupssent 75 bytes received 31 bytes 212.00 bytes/sec total size is 6 speedup is 0.06 |
Neste exemplo acima, pode ver que, se o destino não existe o rsync cria um diretório automaticamente.
COPIAR / SINCRONIZAR UM DIRETÓRIO NUM SERVIDOR LOCAL
O comando abaixo irá transferir ou sincronizar todos os arquivos de um diretório para outro diretório na mesma máquina
rsync -avzh /home/imagens /backup/imagens/ sent 60.03K bytes received 244 bytes 120.54K bytes/sec total size is 83.03K speedup is 1.38 |
Este comando irá copiar/sincronizar um diretório a partir de um servidor local para um servidor remoto.2. COPIAR / SINCRONIZAR ARQUIVOS E DIRETÓRIO COM UM SERVIDOR LOCAL E OUTRO REMOTO
Pode copiar do servidor onde estão os dados a copiar para outro servidor onde vai ficar a copia ou copiar a partir do servidor onde vai ficar a copia.
rsync -avz /backup/cpbackup/daily/ root@meuservidor.com:/backup/cpbackup/daily |
Agora o contrário COPIAR / SINCRONIZAR UM DIRETÓRIO REMOTO PARA UM SERVIDOR LOCAL
rsync -avz root@meuservidor.com:/backup/cpbackup/daily/ /backup/cpbackup/daily |
3. USAR O RSYNC JUNTO COM O SSH
Com rsync, podemos usar o SSH ( Secure Shell ) para transferência de dados, usando SSH durante a transferência de dados eles estarão mais seguros.
Para determinar um protocolo com rsync usamos o parametro ” -e “. Neste exemplo, vamos utilizar ” ssh .
rsync -avzhe ssh root@meuservidor.com:/backup/cpbackup/daily/ /backup/cpbackup/daily |
AGORA AO CONTRÁRIO, COPIAR UM ARQUIVO DE UM SERVIDOR LOCAL PARA UM SERVIDOR REMOTO COM SSH
rsync -avzhe ssh /backup/cpbackup/daily/ root@meuservidor.com:/backup/cpbackup/daily |
4. MOSTRAR PROGRESSO NA TRANSFERÊNCIA DE DADOS COM RSYNC
rsync -avzhe ssh –progress root@meuservidor.com:/backup/cpbackup/daily/ /backup/cpbackup/daily |
5. USAR A OPÇÃO –INCLUDE E –EXCLUDE
Estas duas opções permitem incluir e excluir arquivos de uma copia/sincronização.
Neste exemplo, o comando rsync irá incluir arquivos e diretórios apenas que começam com ‘ M ‘ e excluir da copia todos os outros arquivos e diretórios no destino.
rsync -avze ssh –include ‘m*’ –exclude ‘*’
root@meuservidor.com:/backup/cpbackup/daily/ /backup/cpbackup/daily |
6. USO DE OPÇÃO –DELETE
Podemos usar ‘ —delete‘ para apagar os arquivos no destino que não existem no diretório de origem.
rsync -avz –delete root@meuservidor.com:/backup/cpbackup/daily/ /backup/cpbackup/daily |
PODE DEFINIR O TAMANHO MÁXIMO DOS ARQUIVOS QUE SERÃO TRANSFERIDOS
Pode especificar o parâmetro “–max-size” para definir o tamanho máximo do arquivo.
Exemplo: Um arquivo de 20GB , com este comando irá transferir apenas os arquivos que são iguais ou menores que 20GB .
rsync -avzhe ssh –max-size=’20GB’ root@meuservidor.com:/backup/cpbackup/daily/ /backup/cpbackup/daily |
7. APAGAR AUTOMATICAMENTE ARQUIVOS DA ORIGEM APÓS A TRANSFERÊNCIA BEM SUCEDIDA
Vamos imaginar que tem um servidor de sites e um servidor de backups, o servidor de backups faz um backup diário, mas não quer manter essa cópia local do backup no seu servidor de sites.
Pode fazer a exclusão automática usando a opção ” –-remove-source-files” .
rsync –remove-source-files –zvh meusite.tar.gz root@meuservidor.com:/backup/ |
USAR O PARÂMETRO –DRY-RUN COM O RSYNC
Usando esse parâmetro o Rsync não vai fazer nenhuma alteração no destino, apenas vai mostrar o resultado do comando normalmente, assim fica fácil você encontrar algum erro e não correr o risco de fazer uma cópia desastrada.
rsync –dry-run –remove-source-files –zvh meusite.tar.gz root@meuservidor.com:/backup/ |
10. DEFINIR LIMITE DE BANDA DE TRANSFERÊNCIA DE ARQUIVOS
Podemos configurar o limite de banda durante a transferência dos arquivos de um servidor para outro usando o ‘ —bwlimit’.
rsync –bwlimit=500 -avzhe ssh root@meuservidor.com:/backup/cpbackup/daily/ /backup/cpbackup/daily |
Rsync utilizando SSH em porta diferente da default (22)
rsync -auvzh –rsh=’ssh -p2222′ arquivolocal root@seuservidor.com:/caminho/para/o/arquivoremoto |
Ainda existem outras opçoes para configurar o Rsync como um outro serviço tanto local como remoto, mas estas são as mais utilizadas.