Queremos fazer um backup de tudo em nosso servidor Debian, que está sendo executado remotamente no outro lado do mundo (hospedado por Linode), sem desligá-lo.
Este sistema está executando shell, email, XMPP / prosody e web, com algumas configurações simples do nginx.
Queremos fazer backup de arquivos relacionados a essas coisas apenas por segurança. Por exemplo, arquivos que os usuários armazenaram em seus diretórios pessoais.
Não precisamos copiar exatamente a configuração existente em cada arquivo / etc; em vez disso, a razão pela qual estamos fazendo o backup em primeiro lugar é para que possamos mudar tudo para uma nova configuração (versão mais recente do Debian ainda no Linode).
Vejo que o Linode oferece um serviço de backup. Mas, a longo prazo, também precisamos de nossos próprios backups, aqui, caso eles falhem ou algo mais estranho aconteça.
A razão pela qual essa pergunta existe é que, quando tentei fazer backups no passado, cometi um destes dois erros:
- Eu disse "OK, vou copiar
/
e tudo o que há embaixo" e fiquei preso em um loop infinito estranho, porque a unidade para a qual eu estava copiando estava montada em / media / backup e ela estava se copiando recursivamente [obv esse problema específico não aplicável aqui, já que vamos fazer backup via rsync ou similar] ou ele ficou parado ao tentar copiar algumas coisas "vivas" em / proc ou / var ou qualquer outra coisa, como tentar acompanhar os registros em constante mudança, ou - Eu disse "OK, vou pegar o mínimo necessário do que precisamos ... hmm, os diretórios pessoais de todos e os diretórios de servidores da web (todos abaixo
/var
) e vamos pegar uma cópia/etc
e todos os e-mails antigos em / var / vmail "e invariavelmente danifiquei as permissões ou os carimbos de data / hora do arquivo (dessa vez, certificarei-me de não fazer backup dos arquivos unix em uma unidade FAT) ou esqueci alguma coisa (" oh, dispara, eu tinha alguns scripts personalizados em / usr / local / bin que nunca guardei em nenhum outro lugar, esqueci de pegá-las, acho que elas se foram agora ").
Portanto, a cópia óbvia de toda a unidade levou a armadilhas e a cópia seletiva de diretórios levou a armadilhas. Eu quero saber como fazer isso direito.
A questão de falha no servidor O que é necessário para um sistema de backup completo? aborda filosofia e boas práticas, mas estou procurando esses detalhes mais específicos de:
- Quais diretórios eu preciso copiar e quais eu excluo (dado que é um sistema que está sendo executado no momento e que fornece um wiki, bate-papo XMPP, e-mail - com novas mensagens entrando enquanto o trabalho de cópia está em execução)
- Quais atributos de arquivo, como registro de data e hora, proprietário e grupo, preciso apresentar e como faço isso? ← Acho que posso responder essa metade da pergunta com algo como ... hum ...
rsync -HXaz
acho que é uma boa opção para nós? O-z
obv não está realmente relacionado à questão que é "o que preservo"
Muitos conselhos de backup que vejo, como usar dd
, parecem pressupor que a unidade está desmontada e não está em uso. Mas eu não deveria excluir "vivo" diretórios como o / proc e alguns dos subdiretórios sob / var (No entanto, algumas das coisas em / var Eu sei que nós definitivamente fazer necessidade de manter) e / mount? No que mais preciso pensar nessa situação? Então eu acho que posso apenas snarf-lo com rsync e usando um monte de --exclude
sinalizadores.
Ou existem idéias melhores, especialmente as que são compatíveis com o software livre?
cp -r -a
preservará o maior número possível de atributos de arquivo ao copiar arquivos (com base no que o sistema de arquivos de destino suporta). O -a
sinalizador instrui cp
a preservar atributos. Para copiar em uma rede ou através de um sistema de arquivos que não oferece suporte aos atributos necessários, tar -c
sempre funcionou para mim, embora eu acredite que haja alguns casos extremos que ele não cobre e, em particular, acredito que, tar
por padrão, depende de nomes de usuários correspondentes a ambos os sistemas. Dito isto, copiei um sistema Linux inteiro (não montado) usando tar
sem problemas aparentes.