Jakie rozwiązanie do tworzenia kopii zapasowych używasz dla serwerów Linux [zamknięte]


15

Jakich rozwiązań do tworzenia kopii zapasowych używasz dla serwera Linux w środowisku produkcyjnym? Wolisz produkty open source czy komercyjne?

Co uważasz za podstawowe funkcje oprogramowania do tworzenia kopii zapasowych?

Których produktów nie polecasz? Czy występują jakieś typowe pułapki w wyborze oprogramowania do tworzenia kopii zapasowych?


Jednak stare pytanie, LuckyBackup jest również prawidłową odpowiedzią.
Nikos Alexandris

Odpowiedzi:


12

Używam Baculi openSource . Jest doskonały - model serwer / klient, który działa w systemie Windows lub Linux. Istnieje dobre wsparcie online i aktywna społeczność programistów.

Trochę trudne w konfiguracji, ale ma wszystkie funkcje, których możesz chcieć.

Istnieje również ładne GUI o nazwie bweb, którego można używać do codziennej obsługi tego.


Cześć, próbuję rozmieścić bakulę w moim biurze i jest to bardzo trudne. Jeśli masz dokumentację instalacyjną, możesz ją udostępnić.
Caterpillar

Przepraszam, właśnie skorzystałem z dokumentacji online.
Brent

7

Jeśli chodzi o niezbędne funkcje, musisz użyć odpowiedniego narzędzia do pracy.

Jeśli twój zestaw danych jest mały i mieści się na jednym woluminie, użyj rsnapshot lub rdiff-backup. Oba oferują przyrostowe kopie zapasowe, zajmują mało miejsca i są naprawdę łatwe w użyciu.

W przypadku większych lub bardziej wyrafinowanych kopii zapasowych, które zawierają komponent offline, używam Baculi, właściwa konfiguracja zajmuje trochę czasu, ale jest solidna i ma całkiem sporo funkcji. Polecam połączenie go z interfejsem internetowym, takim jak webacula.

Jeden dobry pomysł, przy okazji, dla każdego serwera, z którego korzystam, używam rdiff-backup do codziennego przyrostowego tworzenia kopii zapasowych / etc w / var / backups /, nic cię to nie kosztuje i zaoszczędzi ci wielu problemów, jeśli nie możesz się zorientować dlaczego ta ostatnia zmiana w pliku konfiguracyjnym powoduje tak duże spustoszenie.


4

Używam rsync, zarówno przez sieć od mojego colo do mojego domu, jak i od mojego domowego pudełka do wymiennego napędu USB, który zamieniłem na taki, który trzymam na biurku w pracy. Skrypt wygląda mniej więcej tak:

#!/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

+1: ... dla rsync; Używam tego samego :-)
Jon Cage

LuckyBackup , na podstawie rsync.
Nikos Alexandris

@NikosAlexandris, nie użyłbym produktu kopii zapasowej ze słowem „szczęśliwy” w nazwie - nie podoba mi się konotacja, że ​​„jeśli masz szczęście, będziesz mógł go przywrócić”.
Paul Tomblin

: D - Sprawdź jednak „nagrody” na stronie głównej projektu.
Nikos Alexandris,

3

Używam jungledisk z pamięcią plików w chmurze Rackspace. Po prostu idzie każdej nocy i robi swoje, po prostu mówię, co zrobić, a nawet zachowuje poprawki (coś w rodzaju). Offsite i dość niedrogi.


Ja też uwielbiam Jungledisk. To jest po prostu łatwe.
Corey S.,

2

Używam backuppc dla wszystkich moich hostów. Problemem był tylko sklep maildir o pojemności 500 GB, ponieważ rsyncnaprawdę zużywał zbyt dużo pamięci RAM po stronie odbierającej. Przerzuciłem się na używanie inkrementacji bazy smoły i znacznika czasu dla tego hosta.


2

BackupExec , z bezpłatnym agentem RALUS * NIX . Łatwo eksportuje, nie wymaga SAMBA i pasuje do serwerów Windows, które są również wspierane przez agentów.


Czy agent Unix jest nadal darmowy? Ostatnim razem, gdy na nie patrzyłem, był z tym związany koszt licencyjny - co mnie zaskoczyło, ponieważ był wolny od co najmniej BackupExec 10 i wcześniejszych.
Gavin McTaggart,

2

Jeśli szukasz systemu opartego na dysku (zamiast taśmy, urządzenia zewnętrznego lub czegoś innego ), sugeruję skorzystanie z BackupPC . Mieliśmy z tym dobre doświadczenie. Wydaje się, że dobrze sobie radzi z gromadzeniem plików, aby dobrze wykorzystać miejsce na dysku, jest bardzo konfigurowalny i był dla nas solidny.


2

Sugeruję, że Bacula obecnie używam go w naszym sklepie. Działa również z systemem Windows, jeśli okaże się, że jest to potrzebne. :)

Inną sugestią może być Amanda, jednak nigdy jej nie użyłem, chociaż często są one porównywane ze sobą.

Bacula to zestaw programów komputerowych, które pozwalają Tobie (lub administratorowi systemu) zarządzać kopiami zapasowymi, odzyskiwaniem i weryfikacją danych komputerowych w sieci różnego rodzaju komputerów. Z technicznego punktu widzenia jest to sieciowy program do tworzenia kopii zapasowych oparty na kliencie / serwerze. Bacula jest stosunkowo łatwa w użyciu i wydajna, a jednocześnie oferuje wiele zaawansowanych funkcji zarządzania pamięcią, które ułatwiają wyszukiwanie i odzyskiwanie utraconych lub uszkodzonych plików. Dzięki modułowej budowie Bacula jest skalowalny od małych pojedynczych systemów komputerowych do systemów składających się z setek komputerów zlokalizowanych w dużej sieci.


2

Ten dokument wyjaśnia w bardzo dobry i szczegółowy sposób, jak używać rsync do tworzenia przyrostowych kopii zapasowych w systemie Linux.


1

W zastrzeżonym świecie R1Soft wykonuje bardzo dobrą robotę. Wypróbuj bezpłatne narzędzia demonstracyjne.

W wolnym świecie używam migawek lvm, dd i netcat, aby szybko tworzyć kopie zapasowe. Upewnij się tylko, że dm_snapshot istnieje w twoim initrd :)


1

Jestem szczęśliwym użytkownikiem skryptu otoki backupninja . jest dostępny w Debianie jako pakiet w standardowym repozytorium.

w zależności od rodzaju danych używam bezpośrednio rdiff-backup wspomnianego przez Andrew Cholakiana, lub najpierw robię migawkę woluminu LVM [wspomnianego przez tinkertim], a następnie uruchamiam na nim rdiff-backup.

rdiff-backup nie działa bardzo wydajnie w przypadku złych łączy sieciowych, w takich przypadkach uruchamiam rdiff-backup lokalnie, a następnie używam rsync do synchronizacji repozytorium kopii zapasowych ze zdalnym serwerem.


1

Gdzie chcesz wykonać kopię zapasową? rsync może być nieocenionym narzędziem do synchronizacji kopii katalogów, jeśli chcesz wykonać kopię zapasową na innym serwerze z linuksem. Możesz zachować kopie zapasowe na podstawie czasu, uzyskując poprzednią kopię zapasową. Zasadniczo otrzymujesz pełną kopię zapasową za każdym razem, ale pobiera ona tylko zmienione pliki. Oto przykładowy skrypt bash, który użyje rsync, nie zapomnij przeczytać komentarzy.

#!/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

0

Dirvish

Co uważasz za podstawowe funkcje oprogramowania do tworzenia kopii zapasowych?

  • Możliwość bardzo łatwego przywracania
  • Nie marnuje pamięci ani przepustowości kopii zapasowych

0

Nie mogę uwierzyć, że nikt nie wspominał o Duplicity . Nie mogę tego wystarczająco polecić. Ma wiele backendów - od FTP przez ssh do S3 - i szyfruje (gpg) i przyrostowe kopie zapasowe, a proces przywracania jest strasznie łatwy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.