Giải pháp sao lưu nào bạn sử dụng cho máy chủ linux [đã đóng]


15

Những giải pháp sao lưu bạn sử dụng cho máy chủ linux trong môi trường sản xuất? Bạn thích nguồn mở hay sản phẩm thương mại?

Những gì bạn coi là tính năng cần thiết trong phần mềm sao lưu?

Những sản phẩm bạn không đề nghị? Có bất kỳ cạm bẫy phổ biến trong lựa chọn phần mềm sao lưu?


Tuy nhiên, câu hỏi cũ, LuckyBackup cũng là một câu trả lời hợp lệ.
Nikos Alexandris

Câu trả lời:


12

Tôi sử dụng bacula nguồn mở . Thật tuyệt vời - mô hình máy chủ / máy khách hoạt động trên windows hoặc linux. Có hỗ trợ trực tuyến tốt và cộng đồng nhà phát triển tích cực.

Một chút khó khăn để thiết lập, nhưng có tất cả các tính năng bạn có thể muốn.

Ngoài ra còn có một gui web đẹp gọi là bweb có thể được sử dụng cho hoạt động hàng ngày của nó.


Xin chào, tôi đang thử triển khai bacula tại văn phòng của tôi và nó rất phức tạp. Nếu bạn có bất kỳ tài liệu cài đặt nào, bạn có thể vui lòng chia sẻ nó ..
bướm

Xin lỗi, tôi chỉ sử dụng các tài liệu trực tuyến.
Brent

7

Theo như các tính năng thiết yếu, bạn cần sử dụng đúng công cụ cho công việc.

Nếu tập dữ liệu của bạn nhỏ và vừa với một ổ đĩa, hãy sử dụng rsnapshot hoặc sao lưu dự phòng. Cả hai đều cung cấp sao lưu gia tăng, rất hiệu quả về không gian và thực sự dễ sử dụng.

Đối với các bản sao lưu lớn hơn hoặc tinh vi hơn có thành phần ngoại tuyến tôi sử dụng Bacula, phải mất một thời gian để thiết lập đúng, nhưng nó rất ổn định và có khá nhiều tính năng. Tôi khuyên bạn nên ghép nó với một giao diện web như webacula.

Một ý tưởng hay, btw, đối với mọi máy chủ tôi có, tôi sử dụng sao lưu dự phòng để giữ bản sao lưu gia tăng hàng ngày của / etc trong / var / backups /, nó sẽ không tốn kém gì và sẽ giúp bạn đỡ đau đầu nếu bạn không thể tìm ra Tại sao thay đổi cuối cùng đối với tệp cấu hình lại gây ra nhiều sự tàn phá.


4

Tôi sử dụng rsync, cả qua mạng từ colo đến nhà của tôi và từ hộp nhà của tôi sang ổ USB có thể tháo rời mà tôi đổi lấy một cái tôi giữ trong bàn làm việc. Kịch bản trông giống như thế này:

#!/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: ... cho rsync; Tôi sử dụng điều tương tự :-)
Jon Cage

LuckyBackup , dựa trên rsync.
Nikos Alexandris

@NikosAlexandris, tôi sẽ không sử dụng một sản phẩm dự phòng có từ "may mắn" trong tên - Tôi không thích ý nghĩa "nếu bạn may mắn, bạn sẽ có thể khôi phục nó".
Paul Tomblin

: D - Mặc dù vậy, hãy kiểm tra "giải thưởng" trong trang chủ của dự án.
Nikos Alexandris

3

Tôi sử dụng jungledisk với lưu trữ tệp đám mây Rackspace. Nó chỉ đi mỗi đêm và làm việc của nó, tôi chỉ nói với nó những gì cần sao lưu, và nó thậm chí còn giữ lại các bản sửa đổi (loại). Ngoại vi, và khá rẻ.


Tôi cũng yêu Jungledisk. Nó thật dễ dàng.
Corey S.

2

Tôi đang sử dụng backuppc cho tất cả các máy chủ của mình. Chỉ có cửa hàng maildir 500GB có vấn đề vì rsyncthực sự sử dụng quá nhiều RAM ở phía nhận. Tôi đã chuyển sang sử dụng gia tăng cơ sở tar và tem thời gian cho máy chủ đó.


2

BackupExec , với tác nhân RALUS * NIX miễn phí . Xuất khẩu dễ dàng, không yêu cầu SAMBA và phù hợp với các máy chủ Windows cũng được hỗ trợ bởi các đại lý.


Đại lý Unix vẫn miễn phí phải không? Lần cuối cùng tôi nhìn vào nó có một chi phí cấp phép liên quan đến nó - điều đó làm tôi ngạc nhiên, vì nó miễn phí từ ít nhất là BackupExec 10 trở về trước.
Gavin McTag hành

2

Nếu bạn đang tìm kiếm một hệ thống dựa trên đĩa (thay vì băng hoặc ngoại vi hoặc đôi khi), tôi khuyên bạn nên xem xét BackupPC . Chúng tôi đã có kinh nghiệm tốt với nó. Nó dường như làm tốt công việc gộp các tệp để tận dụng tốt dung lượng ổ đĩa, nó rất có thể cấu hình và rất ổn định đối với chúng tôi.


2

Tôi muốn đề nghị Bacula tôi hiện đang sử dụng nó trong cửa hàng của chúng tôi. Nó cũng hoạt động với các cửa sổ, nếu bạn thấy bạn có nhu cầu về nó. :)

Một đề nghị khác có thể là Amanda, tuy nhiên tôi chưa bao giờ sử dụng nó, mặc dù cả hai thường được so sánh với nhau.

Bacula là một bộ các chương trình máy tính cho phép bạn (hoặc quản trị viên hệ thống) quản lý sao lưu, phục hồi và xác minh dữ liệu máy tính trên một mạng các loại máy tính khác nhau. Về mặt kỹ thuật, đây là chương trình sao lưu dựa trên Máy khách / Máy chủ. Bacula tương đối dễ sử dụng và hiệu quả, đồng thời cung cấp nhiều tính năng quản lý lưu trữ tiên tiến giúp dễ dàng tìm và khôi phục các tệp bị mất hoặc bị hỏng. Do thiết kế mô-đun, Bacula có thể mở rộng từ các hệ thống máy tính nhỏ đến các hệ thống bao gồm hàng trăm máy tính được đặt trên một mạng lớn.


2

Tài liệu này giải thích một cách rất hay và chi tiết cách sử dụng rsync để sao lưu gia tăng trên Linux.


1

Trong thế giới độc quyền, R1Soft đang làm rất tốt. Hãy thử các công cụ demo mà họ phát hành miễn phí.

Trong thế giới tự do, tôi sử dụng ảnh chụp nhanh lvm, dd và netcat để sao lưu nhanh. Chỉ cần đảm bảo dm_snapshot tồn tại trong initrd của bạn :)


1

tôi là người dùng hạnh phúc của script bash backupninja . nó có sẵn trong debian dưới dạng gói trong kho lưu trữ tiêu chuẩn.

tùy thuộc vào loại dữ liệu tôi sử dụng trực tiếp sao lưu được đề cập bởi Andrew Cholakian, hoặc lần đầu tiên chụp ảnh khối lượng LVM [được đề cập bởi tinkertim] và sau đó chạy sao lưu dự phòng trên đó.

Sao lưu dự phòng không hoạt động rất hiệu quả đối với các liên kết mạng xấu, trong trường hợp như vậy tôi chạy sao lưu cục bộ và sau đó sử dụng rsync để đồng bộ hóa kho lưu trữ sao lưu với máy chủ từ xa.


1

Bạn muốn sao lưu ở đâu? rsync có thể là một công cụ vô giá để giữ một bản sao của các thư mục đồng bộ nếu bạn muốn sao lưu vào một máy chủ linux khác. Bạn có thể giữ các bản sao lưu dựa trên thời gian bằng cách tìm nguồn dự phòng trước đó. Về cơ bản, bạn đang nhận được một bản sao lưu đầy đủ mỗi lần nhưng nó sẽ chỉ kéo các tệp đã thay đổi. Dưới đây là một tập lệnh bash ví dụ sẽ sử dụng rsync, đừng quên đọc các bình luận.

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

Dư luận

Những gì bạn coi là tính năng cần thiết trong phần mềm sao lưu?

  • Có thể khôi phục rất dễ dàng
  • Không lãng phí lưu trữ hoặc băng thông cho các bản sao lưu

0

Tôi không thể tin rằng không ai có đề cập Duplicity . Tôi không thể đề nghị nó đủ cao. Nó có nhiều phụ trợ - từ FTP đến ssh đến S3 - và mã hóa (gpg) và sao lưu gia tăng, và quá trình khôi phục rất dễ dàng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.