Posso clonar um sistema de arquivos raiz de um servidor em execução via ssh?

4

Eu quero fazer um backup de um servidor em execução. Todos os arquivos de configuração e tudo sem desligá-lo.

Como posso conseguir isso? Está tudo bem tentar copiar tudo isso? Porque eu tive problemas com o diretório root .

Eu não quero fazer muita experimentação também porque tem configurações importantes.

Estou tentando fazer tudo isso via ssh . Como posso fazer esse backup?

Alguma idéia?

    
por AAlvz 25.02.2013 / 18:03

2 respostas

4

Se você quiser um backup de todos os dados, então você pode entrar no servidor via ssh e, em seguida, basta copiar todos os arquivos. Por exemplo. com scp ou com rsync .

Você pode até copiar tudo, inclusive os arquivos do sistema operacional, se você usar o% rsync -zvr --exclude /dev/ / destination_computer_name_or_ip

-r: Recursiva
-v: verbose
-z: ativa a compactação

Observe que isso não copiará o registro de inicialização. Para fazer isso, você quer copiar todo o disco e fazer isso quando o disco não estiver montado. (Leia: Desligue a máquina que você deseja utterly_full_backup e inicialize a partir de um liveCD ou inicialize a partir de outra partição.)

Em seguida, use o dd para ler a unidade inteira.

Exemplo de código:

PC para armazenar o backup:
nc -l 4242 | gunzip | cat > my_full_disk_backup_of_PC_named_foo

E no PC para fazer o backup:
dd if=/dev/sda of=- bs=1M | gzip | nc -p 4242 name_of_the_destination

dd irá ler a partir do disco. O disco inteiro, incluindo setores de inicialização e setores vazios. No exemplo, configuramos para o primeiro disco, conforme indicado por sd a . Ajuste para sdb para o segundo disco, sdc para um terceiro disco etc etc.

Saída para std out, indicada pelo - .

bs = 1M define um tamanho de bloco. Você não precisa disso, mas sem muitas pequenas leituras e sobrecarga enorme. Configurar isso para algum valor maior que 512 bytes ou 4k irá acelerar as coisas.

Em seguida, canalizamos | da saída, embora gzip, para compactá-la. Isso pressupõe que seu processador será muito mais rápido que sua rede. Você pode pular o gzip na fonte e o gunzip no destino, caso em que você enviará os dados brutos em vez de dados compactados pela rede.

A última é nc ou netcat. Ele aceita a entrada do pipe anterior e a coloca na rede, em direção à porta 4242 em um computador chamado nome_do_destino .


No final do recebimento, fazemos o contrário:

Ouça via nc -l para entrada na porta 4242,

descompactar se necessário,

E finalmente escreva em um arquivo.


Nota importante :

Você pode fazer isso enquanto inicializa a partir do disco que está fazendo backup. Mas não há garantia de que o sistema de arquivos permanecerá o mesmo durante um backup. Portanto, tente apenas se você puder inicializar com o disco como somente leitura. (por exemplo, usando puramente um disco de memória RAM)

    
por 25.02.2013 / 18:20
1

o que eu faria seria muito semelhante ao Hennes

Eu criaria um arquivo iso, baixaria, colocaria em disco ou usb e faria o upload de uma cópia para o dropbox, para o caso.

mkisofs -V LABEL -r DIRECTORY | gzip > backup.iso.gz

Meus amigos anfitriões no rackspace, ele me disse que os usuários do rackspace têm a opção de criar um arquivo iso automaticamente, e se eles estivessem migrando para um novo servidor, eles poderiam armazenar o backup antigo no antigo servidor de nuvem usando rsync ou o que quer que seja e desligue, eles ainda pagam, mas é barato.

Não sei se sua hospedagem oferece um sistema de backup automatizado ou se você está pagando pelo suporte. vale a pena perguntar a eles e talvez deixá-los fazer isso, se for sua primeira vez.

    
por 03.09.2013 / 00:22