Cronjob para criar imagem de disco do Ubuntu Server 12.04 em disco rígido USB externo

Cronjob para criar imagem de disco do Ubuntu Server 12.04 em disco rígido USB externo

Tenho um disco rígido externo de 1 TB e gostaria de tirar um instantâneo de todo o servidor periodicamente (talvez uma vez por semana). Para a parte do cronjob, pretendo apontar para um script bash em:

$ sudo crontab -e

mas não tenho ideia de qual ferramenta eu poderia usar para criar uma imagem de disco do servidor enquanto ele está em execução. Teria que ficar inativo durante a criação da imagem? Eu estava olhando para o Clonezilla, mas parece que primeiro preciso configurar um servidor DRBL, o que parece algo que não quero.

Também não sei quanto tempo levará para executar um backup ou se há alguma maneira de fazer apenas alterações incrementais. Pretendo armazenar cerca de 500 GB de dados lá.

Preciso formatar o disco rígido externo de alguma maneira específica? Alguém conhece bons tutoriais/pontos de partida?

Desde já, obrigado.

Responder1

Você pode usar o rsync para fazer uma cópia de todo o sistema. Não será uma “imagem” em si, mas conterá uma cópia de todos os arquivos do sistema. Por exemplo, você poderia fazer:

rsync -aHAXxv / /mnt/backup/

Isso copiaria tudo no sistema de arquivos raiz para/mnt/backup. (Observe que ele copia apenas um sistema de arquivos devido a -x; portanto, se você tiver vários sistemas de arquivos, precisará executar vários comandos ou omitir -x e usar --exclude para excluir o caminho de backup.)

Responder2

Experimente o fsarchiverhttp://www.fsarchiver.org/QuickStart Ele permite que você crie backup ao vivo a partir de partição e compactação de imagem multithread. Infelizmente, os backups incrementais são um pouco difíceis com isso. Talvez usando o rsync na imagem dd da partição? Considere fazer uma imagem de partição compactada e talvez um backup incremental rsync/bacula de algumas pastas.

Responder3

Pode ser melhor pensar sobre o que você está fazendo backup - obter uma imagem de disco exigiria algum tipo de truque para não corrompê-la devido ao sistema em execução - duas maneiras que posso imaginar:

  • algum tipo de magia negra pré-montada que cria uma imagem na inicialização (parece difícil) e depois cron na reinicialização
  • execute o servidor sob algum tipo de hipervisor e use instantâneos controlados pelo host

As outras opções são fazer backup dos dados e configurações criados e deixar os "bits do sistema operacional" para serem recriados por uma nova instalação - talvez você possa até criar um script de instalação para DR super-rápido. Isso também economizará muitos gigas de espaço de backup - o que significa que você pode fazer backup com mais frequência e manter uma retenção mais longa.

Responder4

Conforme mencionado por @ontem, você poderia usar o rsync assim:

rsync -aHAXxv / /mnt/backup/

Isso criaria um backup auf, /mas não de outras partições montadas como /var Portanto, você deve fazer isso para cada partição que precisar fazer backup.

Mas para ter certeza de que você tem um backup consistente, você deve usar instantâneos LVM, se disponíveis. Por exemplo:

# create snapshots
lvcreate -s vg0/root -n root_snapshot -L2G
lvcreate -s vg0/var  -n var_snapshot  -L2G
# mount snapshots to make a copy
mount /dev/vg0/root_snapshot /mnt/snapshot
mount /dev/vg0/var_snapshot  /mnt/snapshot/var
# backup all files (no need for -x here)
rsync -aHAXv /mnt/snapshot/  /mnt/backup/
# unmount the snapshots
umount /mnt/snapshot/var /mnt/snapshot
# remove the snapshots
lvremove vg0/root_snapshot
lvremove vg0/var_snapshot

informação relacionada