Sites em nuvem do Rackspace para backup do servidor local

3

Eu uso sites em nuvem rackspace e não tenho acesso ao SSH ou RSYNC em seus servidores, mas eu acesso ao SSHFS.

Eu gostaria de poder fazer backup do meu site em nuvem para o meu servidor Ubuntu local, que possui SSH, RSYNC, etc.

Até agora, estou pensando que a melhor maneira de fazer isso é montar o site no servidor local usando:

sshfs [email protected]:/path-to-site/ ~/Sites_Mounted/site-name/ -o reconnect,cache=no,compression=yes,ServerAliveInterval=15

Reconectar - para que a conexão seja reconectada se ela cair

Cache = no - porque queremos backups ao vivo, não arquivos antigos em cache

Compressão - para minimizar o uso de largura de banda

ServerAliceInterval - como o SSHFS sai depois de um longo tempo e trava

Eu estava pensando em usar um comando RSYNC para copiar os arquivos dos sites agrupados em um diretório de backup no servidor local e, quando o próximo backup for concluído, 12hrs depois, copie / RSYNC o diretório de backup para um novo diretório de backup. nome diferente, por exemplo, 2012-01-01-sitename) e, em seguida, usando um comando RSYNC para copiar apenas as alterações no servidor remoto para o novo diretório de backup que contém o backup antigo / anterior.

Minhas perguntas são: essa abordagem funcionará? Em caso afirmativo, quais comandos eu precisaria usar e seria possível incluir todos aqueles em um único script .sh que eu poderia executar?

Ou existe uma maneira mais simples, mais eficiente ou melhor de fazer isso?

(Eu acho que posso zipar todo o site no servidor e baixar isso, mas isso parece um pouco pesado)

    
por hozza 13.05.2012 / 21:19

1 resposta

0

Eu tive que clonar vários servidores baseados em nuvem, aqui está minha abordagem:

Interrompa todos os serviços em execução que você puder. Se isso não for uma opção, você precisará fazer db dumps e backups separadamente (ou seja, qualquer coisa que use mysql, redis, solr, etc.)

crie um diretório na raiz, por exemplo, / x

monte / dev / sda1 (ou xvda1 ou qualquer que seja sua partição de sistema raiz) em / x (como você pode ter um dispositivo montado em dois pontos diferentes ao mesmo tempo.) O valor aqui é que você não obterá erros para os dispositivos em / proc, etc. Se você estiver usando lvm, um snapshot funciona muito bem para isso também.

Neste ponto, você tem algumas opções. Se o seu servidor tiver espaço em disco suficiente, basta criar um diretório / y e fazer

tar -zcvf --exclude '/x/*' --exclude '/y/*' /y/root.tar.gz /x/

Se você não, então você pode atirar para outro nó via ssh:

tar -zcvf - /x/ |ssh -i /blah.pem [email protected] 'cat - > /tmp/root.tar.gz'

Em qualquer rota, você pode fazer o download do tarball.

Por último e provavelmente mais fácil, mas não ideal em minha mente, é simplesmente rsync o diretório / x / para sua máquina local.

Qualquer que seja a rota, se você tiver grandes bancos de dados ou kruft desnecessários, economizará tempo excluindo-os do processo tar (simplesmente copiar um banco de dados em execução pode corromper a cópia do banco de dados.)

    
por 02.02.2013 / 01:57