您为 Linux 服务器使用什么备份解决方案

您为 Linux 服务器使用什么备份解决方案

您在生产环境中使用什么 Linux 服务器备份解决方案?您喜欢开源产品还是商业产品?

您认为备份软件的必备功能是什么?

您不推荐哪些产品?备份软件选择中有哪些常见的陷阱?

答案1

我使用开源巴库拉。它非常出色 - 服务器/客户端模型,可在 Windows 或 Linux 上运行。它有良好的在线支持和活跃的开发者社区。

设置起来有点棘手,但具有您想要的所有功能。

还有一个很好的 Web GUI,叫做百科可用于其日常运行。

答案2

就基本功能而言,您需要使用合适的工具来完成工作。

如果您的数据集较小且适合单个卷,请使用 rsnapshot 或 rdiff-backup。两者都提供增量备份,非常节省空间,并且非常易于使用。

对于具有离线组件的更大或更复杂的备份,我使用 Bacula,它需要一段时间才能正确设置,但它非常可靠,并且具有相当多的功能。我建议将它与 webacula 之类的 web 界面结合使用。

顺便说一下,有一个好主意,对于我拥有的每台服务器,我都使用 rdiff-backup 在 /var/backups/ 中保留 /etc 的每日增量备份,这不会花费您任何成本,而且如果您无法弄清楚为什么对配置文件的最后更改会造成如此大的破坏,它将为您省去很多麻烦。

答案3

我使用 rsync,既通过网络从我的 colo 传输到我的家里,也从我的家用机传输到可移动 USB 驱动器,我将其替换为我工作桌上的驱动器。脚本看起来有点像这样:

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

答案4

我在用着备份电脑适用于我的所有主机。只有 500GB 的 maildir 存储存在问题,因为rsync在接收端确实占用了太多 RAM。我转而对该主机使用 tar 和时间戳基础增量。

相关内容