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.)