Backup do repositório svn e do banco de dados mysql diariamente

0

Como eu instruo o servidor Ubuntu 13.10 para:

  1. repositório svn zip
  2. despejar o banco de dados mysql no script .sql
  3. tar os dois arquivos
  4. copiar o tar de backup para o disco sdb

Existem ferramentas prontas para esse tipo de operação?

    
por KernelPanic 06.03.2014 / 21:54

2 respostas

4

A resposta curta é sim, existem ferramentas pré-criadas para cada uma dessas operações:

  1. Use zip
  2. Use mysqldump
  3. Use tar
  4. Use cp

zip não é tão usado na minha experiência. Você obtém melhor compactação e preservação de mais metadados de arquivos específicos do Linux, criando um arquivo .tar e compactando-o (por exemplo, com xz ).

Você só precisa criar um script que execute todas as quatro tarefas uma após a outra e, quando isso funcionar, chame esse script diariamente usando cron .

    
por 06.03.2014 / 22:38
4

A abordagem simples

A abordagem normal do Unix para as coisas é dar a você ferramentas que fazem tarefas isoladas e maneiras de conectá-las você mesmo. Então, por exemplo,

  • cron para agendar tarefas para serem executadas regularmente
  • vários programas para criar arquivos, zip faz arquivos zip. Observe que você também pode querer usar svnadmin hotcopy ; verifique os documentos do Subversion para procedimentos de backup.
  • mysqldump faz sql dumps de bancos de dados MySQL. Existem outras opções, como o Percona Xtrabackup . Você deve rever os documentos para essas ferramentas, bem como o MySQL; backup de banco de dados é (ou pelo menos pode ser) não-trivial.
  • Os arquivos Tar são, obviamente, feitos com tar . Embora não seja claro para mim por que você quer tar-los.
  • cp é usado para copiar arquivos. Existem várias outras ferramentas usadas em outras situações (por exemplo, scp e rsync ).

Existem algumas ferramentas que são comumente usadas como cola para manter isso juntos. O mais comum é o shell script. Um script de shell é parecido com isto:

#!/bin/sh

zip -r destfile.zip a b c d
mysqldump --single-transaction > foo.sql

Note como são apenas comandos como se você os digitasse no shell. É claro, pode ser mais complicado também - você pode incluir variáveis, loops, condicionais, etc. (Você também pode usá-los no prompt de entrada do shell).

A Abordagem Complexa

Essa abordagem nem sempre está certa. Quando seus scripts de backup começam a ficar complicados o suficiente, você tem que se perguntar se eles estão realmente trabalhando, então você passa para um sistema de backup. Eles tratam de coisas como agendar backups, repeti-los se falharem, produzir relatórios, backups em várias máquinas, ....

Um casal que eu usei é:

  • Backup PC - Bom para instalações menores com backups somente de disco. Este é provavelmente o lugar onde você deve começar.
  • Bacula - Eu uso atualmente isso. Ele lida com backups em disco e em fita razoavelmente bem. Muito mais difícil de configurar do que o BackupPC.
  • AMANDA - Eu não usei isso por um tempo, mudei para o Bacula. Quando usei pela última vez, era principalmente para backups em fita.

Cada um deles tem sua própria documentação; Não vou tentar repeti-lo aqui (pelo menos para Bacula, suas centenas de páginas).

Uma nota final

Os backups devem ser testados e testados regularmente. Você não deve considerar algo com backup até que você tenha testado restaurá-lo. Por exemplo, quando você restaura, pode descobrir que não notou um erro durante o backup e, na verdade, não possui um backup de uma tabela crítica. Se você achar que, ao testar, tudo bem - você pode consertá-lo. Se você só descobrir depois de um desastre ...

    
por 06.03.2014 / 22:53