Linux 서버에 사용하는 백업 솔루션 [닫기]


15

프로덕션 환경에서 Linux 서버에 어떤 백업 솔루션을 사용합니까? 오픈 소스 또는 상업용 제품을 선호하십니까?

백업 소프트웨어에서 필수 기능으로 간주하는 것은 무엇입니까?

어떤 제품을 권장하지 않습니까? 백업 소프트웨어 선택에 일반적인 함정이 있습니까?


오래된 질문이지만 LuckyBackup 도 올바른 대답입니다.
Nikos Alexandris

답변:


12

나는 openSource bacula를 사용합니다 . Windows 또는 Linux에서 작동하는 서버 / 클라이언트 모델이 뛰어납니다. 훌륭한 온라인 지원과 활발한 개발자 커뮤니티가 있습니다.

약간 까다 롭지 만 원하는 모든 기능을 갖추고 있습니다.

bweb 이라는 멋진 웹 GUI 가 있으며 일상적인 작업에 사용할 수 있습니다.


안녕, 나는 내 사무실에 세균을 배치하려고하고 그 까다로운. 설치 문서가 있으면 공유하십시오 ..
Caterpillar

죄송합니다. 방금 온라인 설명서를 사용했습니다.
Brent

7

필수 기능에 이르기까지 작업에 적합한 도구를 사용해야합니다.

데이터 세트가 작고 단일 볼륨에 맞는 경우 rsnapshot 또는 rdiff-backup을 사용하십시오. 둘 다 증분 백업을 제공하고 공간 효율성이 뛰어나며 사용하기 쉽습니다.

오프라인 구성 요소가있는 더 크거나 더 복잡한 백업의 경우 Bacula를 사용하는데 제대로 설정하는 데 시간이 걸리지 만 견고하고 기능이 거의 없습니다. webacula와 같은 웹 인터페이스와 연결하는 것이 좋습니다.

한 가지 좋은 아이디어 btw, rdiff-backup을 사용하여 / var / backups /에 / etc의 일일 증분 백업을 유지하는 모든 서버에 대해 비용이 들지 않으며 알아낼 수 없으면 많은 두통을 피할 수 있습니다. 구성 파일의 마지막 변경으로 인해 많은 혼란이 발생하는 이유는 무엇입니까?


4

나는 콜로에서 집까지, 그리고 홈 박스에서 착탈식 USB 드라이브에 이르기까지 네트워크를 통해 직장에서 책상에 보관하는 것과 호환되는 rsync를 사용합니다. 스크립트는 다음과 같습니다.

#!/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 : ... rsync의 경우; 나는 같은 것을 사용합니다 :-)
Jon Cage

LuckyBackup 을 기반으로 rsync합니다.
Nikos Alexandris

@NikosAlexandris, 나는 이름에 "lucky"이라는 단어가있는 백업 제품을 사용하지 않을 것입니다. "운이 좋으면 복원 할 수 있습니다"라는 의미가 마음에 들지 않습니다.
Paul Tomblin

: D-프로젝트 홈페이지에서 "수상"을 확인하십시오.
Nikos Alexandris

3

Rackspace 클라우드 파일 스토리지와 함께 정글 디스크를 사용합니다. 매일 밤 가서 그 일을하고 백업 할 내용을 알려주고 수정 사항을 유지합니다. 오프 사이트이며 상당히 저렴합니다.


저도 Jungledisk를 좋아합니다. 간단합니다.
Corey S.

2

모든 호스트에 backuppc 를 사용 하고 있습니다. rsync수신 측에서 실제로 너무 많은 RAM을 사용 했기 때문에 500GB maildir 저장소 만 문제가되었습니다 . 해당 호스트에 tar 및 time-stamp 기본 증분을 사용하도록 전환했습니다.


2

무료 RALUS * NIX 에이전트 가있는 BackupExec . 쉽게 내보내고 SAMBA를 요구하지 않으며 에이전트가 백업 한 Windows 서버와도 호환됩니다.


유닉스 에이전트는 여전히 무료입니까? 마지막으로 살펴봤을 때 라이선싱 비용과 관련하여 라이센스 비용이 발생했습니다. 최소한 BackupExec 10 및 그 이전 버전이 없었기 때문에 놀랐습니다.
Gavin McTaggart

2

테이프, 오프 사이트 또는 소위 가 아닌 디스크 기반 시스템을 찾고 있다면 BackupPC를 참조하십시오 . 우리는 그것에 대한 좋은 경험을 가지고 있습니다. 디스크 공간을 잘 활용하기 위해 파일을 풀링하는 작업을 잘하는 것처럼 보이며 매우 구성 가능하며 견고합니다.


2

나는 현재 우리 가게에서 Bacula를 사용하고 있다고 제안합니다. 필요한 경우 Windows에서 작동합니다. :)

또 다른 제안은 Amanda 일 수도 있지만, 두 가지가 종종 서로 비교 되기는하지만 결코 사용하지는 않았습니다.

Bacula는 다양한 종류의 컴퓨터 네트워크에서 컴퓨터 데이터의 백업, 복구 및 확인을 관리 할 수있는 컴퓨터 프로그램 세트입니다. 기술적 인 측면에서 이는 네트워크 클라이언트 / 서버 기반 백업 프로그램입니다. Bacula는 비교적 사용하기 쉽고 효율적이며 손실되거나 손상된 파일을 쉽게 찾고 복구 할 수있는 여러 가지 고급 스토리지 관리 기능을 제공합니다. 모듈 식 설계로 인해 Bacula는 소형 단일 컴퓨터 시스템에서 대규모 네트워크를 통해 수백 대의 컴퓨터로 구성된 시스템으로 확장 할 수 있습니다.


2

이 문서 는 Linux에서 증분 백업에 rsync를 사용하는 방법을 매우 상세하고 자세하게 설명합니다.


1

독점적 인 세계에서 R1Soft 는 매우 잘하고 있습니다. 그들이 무료로 출시하는 데모 도구를 사용해보십시오.

자유 세계에서는 빠른 백업을 위해 lvm 스냅 샷, dd 및 netcat을 사용합니다. initrd에 dm_snapshot이 있는지 확인하십시오. :)


1

나는 backupninja 래퍼 bash 스크립트의 사용자입니다 . 데비안에서는 표준 리포지토리의 패키지로 제공됩니다.

데이터 유형에 따라 Andrew Cholakian이 언급 한 직접 rdiff-backup을 사용 하거나 먼저 tinkertim이 언급 한 LVM 볼륨의 스냅 샷을 생성 한 다음 rdiff-backup을 실행합니다.

rdiff-backup은 잘못된 네트워크 링크에서 매우 효율적으로 작동하지 않습니다.이 경우 로컬에서 rdiff-backup을 실행 한 다음 rsync를 사용하여 백업 저장소를 원격 서버와 동기화합니다.


1

어디에서 백업하고 싶습니까? rsync는 다른 리눅스 서버에 백업하고 싶을 때 디렉토리 사본을 동기화 상태로 유지하는 데 매우 유용한 도구가 될 수 있습니다. 이전 백업을 소싱하여 시간 기반 백업을 유지할 수 있습니다. 기본적으로 매번 전체 백업을 받고 있지만 변경된 파일 만 가져옵니다. 다음은 rsync를 사용할 bash 스크립트의 예입니다. 주석을 읽는 것을 잊지 마십시오.

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

디르 비시

백업 소프트웨어에서 필수 기능으로 간주하는 것은 무엇입니까?

  • 매우 쉽게 복원 할 수 있음
  • 백업을 위해 스토리지 또는 대역폭을 낭비하지 않습니다

0

아무도 Duplicity 를 언급하지 않았다는 것을 믿을 수 없습니다 . 나는 그것을 충분히 추천 할 수 없습니다. FTP에서 ssh, S3에 이르는 여러 백엔드가 있으며 암호화 (gpg) 및 증분 백업을 수행하므로 복원 프로세스가 매우 쉽습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.