Como fazer backup de um diretório do servidor remotamente?

1

Estou tentando criar um backup de um servidor remoto. Esta é minha configuração:

Server1  (webserver)
Server2  (backupserver)

Este é o meu pequeno roteiro. Começa a partir do servidor2:

#!/bin/bash

date='date +%F'
basepath=/var/backup
webfolder=$basepath/$date/websites/

for f in $(ssh root@server1 "ls -l /var/www/ | egrep '^l'")
do
    if [[ $f = *.* ]]
    then
        echo "processing $f ";
        ssh root@server1 "tar zcf - /var/www/$f/web/" > $webfolder/$f.tar.gz
    fi
done;

O problema é que é muito lento! Como eu tenho que acelerar esse script?

Atualizações:

Já usei o Rsync sem sucesso. Este é o comando que eu uso:

/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --rsh="/usr/bin/ssh -p 22" [email protected]:/var/www \
    /home/backups/daily.0/webserver/ 

Os servidores estão conectados por um comutador Dell Gigabit. Ambos os servidores possuem a placa de rede Gigabit. Eles estão na mesma sub-rede.

Solução rSync:

No final, e graças às sugestões, segui este caminho:

  1. Instale o rsync em toda a caixa debian
  2. Instale o rsnapshot no servidor de backup
  3. Configure o deamon rsync na caixa debian (excluindo o servidor de backup)
  4. Defina o arquivo de configuração do cron rsnapshot

Esperando pela primeira vez muito tempo pelo primeiro backup.

Distro: Servidores Debian

    
por Michelangelo 08.12.2011 / 16:43

4 respostas

4

Você está reinventando a roda. Você deve tentar usar o rsync. O rsync irá construir a lista de arquivos para você, e usa um algoritmo incrível que é muito rápido, mesmo em links lentos, ou conexões criptografadas que são mais lentas do overhead.

Muito fácil de executar também rsync -vvarP root@server1:/var/www/ root@server2:/var/backup/

    
por 08.12.2011 / 16:50
3

Eu não acho que essa é a explicação mais provável, mas depois de ler o problema que você está tendo com o rsync, é possível que você esteja sofrendo de uma incompatibilidade de duplex em uma ou ambas as conexões do switch de NIC.

Tente fazer um netstat -in em ambos os servidores e verifique as contagens de erros na transmissão. Erros de TX diferentes de zero frequentemente sinalizam uma incompatibilidade de duplex, e um dos efeitos é permitir conexões lentas, de pacotes pequenos (interativos) desimpedidas, mas restringir brutalmente as conexões de dados em massa de velocidade total.

Editar (seguindo o seu comentário abaixo): OK, isso não é sintomático de incompatibilidade duplex, então ignore minha sugestão. Ainda seria útil descobrir qual é o gargalo quando você tenta um rsync-over-ssh agora, já que não é a CPU.

    
por 08.12.2011 / 17:31
1

Como seus dois servidores residem no mesmo switch e no mesmo segmento de rede, minha sugestão seria configurar um daemon rsync em sua caixa de backup e evitar o uso de SSH todos juntos.

Minhas configurações sugeridas para o seu daemon rsync seriam as seguintes. Eu daria uma instrução um pouco mais específica, mas você não mencionou sua distribuição.

[yourshare]
path = /yourpath/
read only = no
list = yes
uid = youruser
gid = youruser
hosts allow = you.rip.add.res

Isso pode ser restrito a apenas estar acessível a partir dos servidores dos quais você deseja fazer o backup. De lá você deve ser capaz de agendar um trabalho rsync diretamente para o seu destino sem o uso de SSH, eliminando esse problema.

Se o seu site consistir em muitos arquivos, o processo de rsync pode ser interrompido na lista de arquivos incrementais de envio. Se assim for, as opções --delete-before ou --delete-after podem ser benéficas.

Existem também algumas configurações onde os arquivos são primeiro copiados e depois analisados localmente. Eu não usei o rsync sobre SSH há algum tempo, mas é possível que as configurações que você está tentando estejam tendo esse efeito.

    
por 08.12.2011 / 17:31
1

Eu sugiro que você use o rsnapshot. É baseado em rsync também. Eu uso para fazer backup de muitos servidores remotos. Basta levar algum tempo na primeira vez e, em seguida, é muito rápido se os dados não mudarem muito. É totalmente personalizável e bastante rápido (a rede no meu caso é o gargalo).

    
por 10.12.2011 / 00:41