您在生产环境中使用什么 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 和时间戳基础增量。