Qual solução de backup você usa para servidores linux [fechado]

15

Quais soluções de backup você usa para servidor linux no ambiente de produção? Você prefere produtos de código aberto ou comerciais?

O que você considera serem recursos essenciais no software de backup?

Quais produtos você não recomenda? Existem armadilhas comuns na seleção de software de backup?

Juha Syrjälä
fonte
Pergunta antiga, porém, o LuckyBackup também é uma resposta válida.
Nikos Alexandris

Respostas:

12

Eu uso o bacula openSource . É excelente - modelo de servidor / cliente que funciona no Windows ou Linux. Há um bom suporte on-line e uma comunidade de desenvolvedores ativa.

Um pouco complicado de configurar, mas tem todos os recursos que você poderia desejar.

Há também um bom gui da web chamado bweb que pode ser usado para a operação diária dele.

Brent
fonte
Oi, estou tentando implantar bacula no meu escritório e é muito complicado. Se você tiver qualquer documentação de instalação por favor você pode compartilhá-lo ..
Caterpillar
Desculpe, acabei de usar a documentação online.
Brent
7

No que diz respeito aos recursos essenciais, você precisa usar a ferramenta certa para o trabalho.

Se seu conjunto de dados for pequeno e couber em um único volume, use rsnapshot ou rdiff-backup. Ambos oferecem backup incremental, economizam muito espaço e são realmente fáceis de usar.

Para backups maiores ou mais sofisticados que possuem um componente offline, eu uso o Bacula, leva um tempo para configurar corretamente, mas é sólido e possui alguns recursos. Eu recomendo acoplá-lo com uma interface web como webacula.

Uma boa idéia, para cada servidor que eu tenho, eu uso o rdiff-backup para manter um backup incremental diário de / etc em / var / backups /, não custa nada e poupa muitas dores de cabeça se você não conseguir descobrir por que essa última alteração em um arquivo de configuração está causando tantos estragos.

Andrew Cholakian
fonte
4

Uso o rsync, tanto na rede do meu colo até minha casa, quanto da minha caixa de casa em uma unidade USB removível que troco por uma que eu mantenho na minha mesa no trabalho. O script é mais ou menos assim:

#!/bin/sh
STARTTIME=$(date +%s)
HOUR=$(date +%H)
DOW=$(date +%a)
WEEKNUM=$(($(date +%W|sed 's/^0\?//') % 4))
LOG=/tmp/last_hour.log
echo "" > $LOG

for DEST in /media/usb[0-9] ; do
  if [ -d $DEST/allhats2 ] ; then
    echo backing up to $DEST >> $LOG
    YESTERDAY=`cat $DEST/yesterday`
    LASTHOUR=`cat $DEST/last_hour`
    PREV=$DEST/allhats2/hour$LASTHOUR
    if [ ! -d $PREV ] ; then
      echo could not find a directory at $PREV >> $LOG
      PREV=$DEST/allhats2/$YESTERDAY
      if [ ! -d $PREV ] ; then
        echo could not find a directory at $PREV >> $LOG
        PREV=$DEST/allhats2/Sat/
      fi
    fi
    if [ $HOUR = "00" ] ; then
      if [ $DOW = "Mon" ] ; then
        echo moving last monday to week$WEEKNUM
        rm -rf $DEST/allhats2/week$WEEKNUM
        mv $DEST/allhats2/Mon $DEST/allhats2/week$WEEKNUM
      fi
      echo moving last midnight to $YESTERDAY
      rm -rf $DEST/allhats2/$YESTERDAY
      mv $DEST/allhats2/hour$HOUR $DEST/allhats2/$YESTERDAY
      echo $DOW > $DEST/yesterday
    fi
    echo about to backup allhats2 to  hour $HOUR >> $LOG
    rm -rf $DEST/allhats2/hour$HOUR/
    rsync -aSuvrx --delete / /boot /home /usr /var /backup_2/dbs --link-dest=$PREV/ $DEST/allhats2/hour$HOUR/ >> $LOG
    echo $HOUR > $DEST/last_hour
  fi
done

YESTERDAY=`cat /root/yesterday`
if [ $HOUR = "01" ] ; then
  # Backup xen1
  echo about to backup xen1 to /1u_backup/xen1/$DOW/
  rm -rf /1u_backup/xen1/$DOW/
  rsync -aSuvrx --delete -e ssh --exclude /var/spool/news/ root@xen1:/ --link-dest=/1u_backup/xen1/$YESTERDAY/ /1u_backup/xen1/$DOW/

  for DEST in /media/usb[0-9] ; do
          if [ -d $DEST/xen1 ] ; then
                  echo "backing up the backup"
                  rm -rf $DEST/xen1/$DOW/
                  rsync -aSuvrx --delete /1u_backup/xen1/$DOW/ --link-dest=$DEST/xen1/$YESTERDAY/ $DEST/xen1/$DOW/ 
          fi
  done

  # Backup xen
  echo about to backup xen to /1u_backup/xen/$DOW/
  rm -rf /1u_backup/xen/$DOW/
  rsync -aSuvrx --delete -e ssh root@xen:/ --link-dest=/1u_backup/xen/$YESTERDAY/ /1u_backup/xen/$DOW/

  for DEST in /media/usb[0-9] ; do
          if [ -d $DEST/xen ] ; then
                  echo "backing up the backup"
                  rm -rf $DEST/xen/$DOW/
                  rsync -aSuvrx --delete /1u_backup/xen/$DOW/ --link-dest=$DEST/xen/$YESTERDAY/ $DEST/xen/$DOW/ 
          fi
  done

  echo done

  echo $DOW > /root/yesterday
fi
Paul Tomblin
fonte
+1: ... para rsync; Eu uso a mesma coisa :-)
Jon gaiola
LuckyBackup , com base em rsync.
Nikos Alexandris
@NikosAlexandris, eu não usaria um produto de backup com a palavra "sorte" no nome - não gosto da conotação de que "se você tiver sorte, poderá restaurá-lo".
Paul Tomblin 17/07/2013
: D - Verifique os "prêmios" na página inicial do projeto.
Nikos Alexandris
3

Eu uso o jungledisk com o armazenamento de arquivos em nuvem da Rackspace. Ele funciona todas as noites e faz as coisas, eu apenas digo o que fazer backup e até mantém revisões (mais ou menos). Fora do local e razoavelmente barato.

Daniel Huckstep
fonte
Eu também amo o Jungledisk. É fácil.
Corey S.
2

Estou usando o backuppc para todos os meus hosts. Somente a loja de maildir de 500 GB era problemática porque rsyncrealmente usava muita memória RAM no lado receptor. Eu mudei para o uso de incrementos básicos de alcatrão e carimbo de data e hora para esse host.

David Schmitt
fonte
2

BackupExec , com o agente RALUS * NIX gratuito . Exporta facilmente, não requer SAMBA e se encaixa nos servidores Windows que também são protegidos por agentes.

Mark Brackett
fonte
O agente Unix ainda está livre? A última vez que olhei para ele, havia um custo de licenciamento associado a ele - o que me surpreendeu, pois estava livre de pelo menos o BackupExec 10 e versões anteriores.
Gavin McTaggart
2

Se você estiver procurando por um sistema baseado em disco (em vez de fita ou fora do local ou algo assim), sugiro consultar o BackupPC . Tivemos uma boa experiência com isso. Parece fazer um bom trabalho de agrupar arquivos para aproveitar bem o espaço em disco, é muito configurável e tem sido sólido para nós.

cavalo pálido
fonte
2

Sugiro que o Bacula atualmente o use em nossa loja. Também funciona com janelas, se você achar necessário. :)

Outra sugestão pode ser Amanda, no entanto, eu nunca a usei, embora as duas sejam frequentemente comparadas entre si.

Bacula é um conjunto de programas de computador que permitem que você (ou o administrador do sistema) gerencie o backup, a recuperação e a verificação dos dados do computador em uma rede de computadores de diferentes tipos. Em termos técnicos, é um programa de backup em rede baseado em cliente / servidor. O Bacula é relativamente fácil de usar e eficiente, oferecendo muitos recursos avançados de gerenciamento de armazenamento que facilitam a localização e recuperação de arquivos perdidos ou danificados. Devido ao seu design modular, o Bacula é escalável de pequenos sistemas de computador único para sistemas constituídos por centenas de computadores localizados em uma grande rede.

bobbyrcox
fonte
2

Este documento explica de uma maneira muito boa e detalhada como usar o rsync para backups incrementais no Linux.

Lucas
fonte
1

No mundo proprietário, a R1Soft está fazendo um trabalho muito bom. Experimente as ferramentas de demonstração que eles lançam gratuitamente.

No mundo livre, eu uso snapshots lvm, dd e netcat para fazer backups rápidos. Apenas verifique se o dm_snapshot existe no seu initrd :)

Tim Post
fonte
1

Estou feliz usuário do script de bash backupninja wrapper. está disponível no debian como pacote no repositório padrão.

dependendo do tipo de dados, eu uso diretamente o rdiff-backup mencionado por Andrew Cholakian, ou primeiro tiro o instantâneo do volume LVM [mencionado por tinkertim] e, em seguida, execute o rdiff-backup nele.

O rdiff-backup não funciona muito eficientemente em links de rede incorretos; nesses casos, eu executo o rdiff-backup localmente e depois uso o rsync para sincronizar o repositório de backup com o servidor remoto.

pQd
fonte
1

Para onde você gostaria de fazer backup? O rsync pode ser uma ferramenta inestimável para manter uma cópia dos diretórios sincronizados, se você desejar fazer backup em outro servidor linux. Você pode manter backups com base no tempo adquirindo um backup anterior. Você está essencialmente recebendo um backup completo todas as vezes, mas ele somente puxa arquivos que foram alterados. Aqui está um exemplo de script bash que usará o rsync, não se esqueça de ler os comentários.

#!/bin/bash

# If you want to automate this script you will need to generate public/private
# key pairs for the user executing this script on the remote server. 

# Change these variable to reflect where you want the backups to be stored
# and what servers will get backed up. Servers are seperated by spaces, do
# not use commas.
BACKUPLOCATION='/backups'
SERVERS=( testserver.example.com )
RSYNC='/usr/bin/rsync'

# These are variables used internally to the script DO NOT CHANGE!
TODAYSDATE=`date +%Y-%m-%d-%H`
FOLDERNAME='Backup-'$TODAYSDATE
CURRENTBACKUP='CurrentBackup'
USELINK=0

backup() {
    # Test and make sure that the folder we are backing up to is writable
    if [ -w $BACKUPLOCATION ]; then
        # The folder we are backing up to is writable no problems
        echo The backup destination is writable, continuing.
    else
        mkdir -p $BACKUPLOCATION
        if [ $? -eq 0 ]; then
            echo "Backup directory '$BACKUPLOCATION' was created"
        else
            # We can't write to the folder alert the user and stop the backup
            echo The backup destination is not writable! Backup Failed!
            exit 1
        fi
    fi

    # If there are older backups then use them as a source directory
    if [ -h "$BACKUPLOCATION/$CURRENTBACKUP" ]; then
        echo
        echo "Previous backup found... Will link to unchanged files..."
        LASTBACKUP=`ls -l $BACKUPLOCATION | grep $CURRENTBACKUP | awk '{ print $11 }'`
        echo $LASTBACKUP
        echo "Deleting Old Link..."
        rm -f $BACKUPLOCATION/$CURRENTBACKUP
        USELINK=1
    fi

    for SERVER in ${SERVERS[@]}
    do
        echo
        THISRUNLOC=$BACKUPLOCATION/$FOLDERNAME/$SERVER
        mkdir -p $THISRUNLOC

        if [ $USELINK -eq 1 ]; then
            OPT="-a --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/tmp --delete --link-dest=$LASTBACKUP/$SERVER $SERVER:/ $THISRUNLOC"
        else
            OPT="-a --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/tmp $SERVER:/ $THISRUNLOC"
        fi
        #echo "Performing: rsync $OPT"
        echo "Backing up server: $SERVER"
        $RSYNC $OPT
        if [ $? -eq 0 ]; then
            echo "Success!"
        else
            echo "Backup failed with an error code of $?"
        fi
        echo
    done

    echo "Creating New Link..."
    ln -s $BACKUPLOCATION/$FOLDERNAME $BACKUPLOCATION/$CURRENTBACKUP
    echo "Backup Complete!"
}

restore() {
        # I didn't write the restore code you can simply copy the files back
}

case $1 in
    backup)
        echo "Running the backup..."
        backup
        ;;
    restore)
        echo "Restoring backup..."
        restore
        ;;
    *)
        echo "Run this command with either backup or restore"
        ;;
esac
TrueDuality
fonte
0

Dirvish

O que você considera serem recursos essenciais no software de backup?

  • Ser capaz de restaurar com muita facilidade
  • Não desperdiça armazenamento ou largura de banda para os backups
Zoredache
fonte
0

Não acredito que ninguém tenha mencionado a duplicidade . Eu não posso recomendar o suficiente. Ele possui vários back-end - do FTP ao ssh e ao S3 - e faz criptografia (gpg) e backups incrementais, e o processo de restauração é assustadoramente fácil.

pjz
fonte