Backup com Rsync
Rsync é um programa de transferência de arquivos para sistemas UNIX. Ele utiliza um algoritmo de sincronização que permite que apenas as partes alteradas dos arquivos sejam transferidas pelo link, poupando a banda do link e tornando a sincronização rápida.
Parte 6: Observações gerais
1) Comandos importantes:
Checa quais os compartilhamentos rsync no servidor, e quais seus nomes:
# rsync 192.168.1.53::
# rsync 192.168.1.53::www
# rsync -av 192.168.1.53::www
(a saída deste comando foi enorme por isso não coloquei aqui, coloquei somente o início e o fim)
# rsync -vr 192.168.1.53::backup .
Note que quando não existe o usuário/grupo ele mantém o uid e gid do servidor.
# rsync -zrogpv 192.168.1.53::backup
# rsync -zrogpv --delete 192.168.1.53::backup .
A opção acima é interessante para ser usada em um servidor cluster, pois você vai querer que seus arquivos estejam iguais nos dois servidores.
Opções adicionais:
--backup
Ele executa o rsync e adiciona um sufixo no final do arquivo; para podermos selecionar qualquer outro sufixo, basta utilizarmos o parâmetro: --suffix=
Executando um backup simples:
# rsync -zrogpv --backup 192.168.1.53::backup .
Adicionando um sufixo default, para isto o arquivo deve ser alterado no servidor:
# rsync -zrogpv --backup --suffix=.old 192.168.1.53::backup .
Checa quais os compartilhamentos rsync no servidor, e quais seus nomes:
# rsync 192.168.1.53::
teste diretório de testes www diretório sites web backup diretório backups diversos (mysql)Conecta ao compartilhamento e lista os arquivos que estão lá:
# rsync 192.168.1.53::www
drwxr-xr-x 4096 2008/03/15 13:49:40 . -rw-r--r-- 14 2008/02/24 16:59:36 index.html -rw-r--r-- 16 2008/01/31 22:52:39 phpinfo.php drwxr-xr-x 4096 2008/01/31 22:41:30 apache2-default drwxr-xr-x 4096 2008/03/15 11:31:28 ldap drwxr-xr-x 4096 2008/03/15 14:04:38 phpmyadmin drwxr-xr-x 4096 2008/03/15 11:50:33 site1# rsync 192.168.1.53::backup
drwxr-xr-x 1024 2008/03/15 14:19:24 . drwxr-xr-x 1024 2008/03/15 14:19:24 2008-Mar-15Conecta ao compartilhamento e lista os arquivos que estão lá, porém aumentando a verbosidade:
# rsync -av 192.168.1.53::www
(a saída deste comando foi enorme por isso não coloquei aqui, coloquei somente o início e o fim)
receiving file list ... done drwxr-xr-x 4096 2008/03/15 13:49:40 . -rw-r--r-- 14 2008/02/24 16:59:36 index.html -rw-r--r-- 16 2008/01/31 22:52:39 phpinfo.php ........................... ........................... sent 79 bytes received 14567 bytes 29292.00 bytes/sec total size is 8321667 speedup is 568.19Para transferir um arquivo:
# rsync -vr 192.168.1.53::backup .
receiving file list ... done 2008-Mar-15/ 2008-Mar-15/mysql2008-Mar-15.tar.gz sent 95 bytes received 95361 bytes 63637.33 bytes/sec total size is 95189 speedup is 1.00De um cliente Rsync, baixar um diretório inteiro; preservando as permissões de arquivo (-p, -o, -g = preserva as permissões, propriedade e grupo); Outras opções: -z = comprime dados, -r = recursivo, faz a transferência recursivamente. Se quisermos usar todos os parâmetros juntos utilize a opção -a (engloba -r, -l, -p, -t, -g, -o, -D).
Note que quando não existe o usuário/grupo ele mantém o uid e gid do servidor.
# rsync -zrogpv 192.168.1.53::backup
receiving file list ... done 2008-Mar-15/ 2008-Mar-15/mysql2008-Mar-15.tar.gzPara deletar arquivos (deletados no servidor) automaticamente utilize o comando; Se não utilizar isto os arquivos vão se acumulando no cliente. Isso pode ser desconsiderado se você quiser manter os arquivos deletados somente no cliente (servidor responsável por baixar os arquivos do servidor).
# rsync -zrogpv --delete 192.168.1.53::backup .
A opção acima é interessante para ser usada em um servidor cluster, pois você vai querer que seus arquivos estejam iguais nos dois servidores.
Opções adicionais:
--backup
Ele executa o rsync e adiciona um sufixo no final do arquivo; para podermos selecionar qualquer outro sufixo, basta utilizarmos o parâmetro: --suffix=
Executando um backup simples:
# rsync -zrogpv --backup 192.168.1.53::backup .
Adicionando um sufixo default, para isto o arquivo deve ser alterado no servidor:
# rsync -zrogpv --backup --suffix=.old 192.168.1.53::backup .
Bom só passei para falar que a solução de backup via Rsync apesar de ser muito rápida e realmente muito legal é extremamente insegura pois o servidor rsync não tem nenhum controle de quem vai conectar e fazer o sincronismo remoto dos dados disponíveis. Ou seja qualquer um que ache o servidor rsync rodando e tenha o rsync-client instalando pode fazer download dos arquivos que estão sendo oferecidos.
Já vi muita gente fazendo backup pela rede de todo o unix pelo rsync de forma indiscriminada, permitindo que qualquer um pudesse baixar arquivos como /etc/passwd, /etc/shadow entre outros.
Quer utilizar o rsync ?? Ótimo... porém pelo menos configure um TCP Wrapper em /etc/hosts.allow dizendo quais hosts podem conectar no serviço de Rsync :)
Isso evita dores de cabeça.
[]s