本番環境のLinuxサーバーに使用するバックアップソリューションは何ですか?オープンソース製品と商用製品のどちらが好きですか?
バックアップソフトウェアの重要な機能と思われるものは何ですか?
あなたがお勧めしない製品はどれですか?バックアップソフトウェアの選択によくある落とし穴はありますか?
私はオープンソースを使用していますbacula。それは素晴らしいです-WindowsまたはLinuxで動作するサーバー/クライアントモデル。優れたオンラインサポートと活発な開発者コミュニティがあります。
設定は少し難しいですが、必要なすべての機能を備えています。
bwebと呼ばれる素敵なWeb GUIもあり、日常の操作に使用できます。
重要な機能に関する限り、仕事に適したツールを使用する必要があります。
データセットが小さく、単一のボリュームに収まる場合は、rsnapshotまたはrdiff-backupを使用してください。どちらも増分バックアップを提供し、スペース効率が非常に高く、非常に使いやすいです。
私がBaculaを使用しているオフラインコンポーネントを含む大規模またはより高度なバックアップの場合、適切にセットアップするのに時間がかかりますが、それは堅実で、かなりの数の機能があります。 webaculaのようなWebインターフェイスと結合することをお勧めします。
ところで、私が持っているすべてのサーバーについて、rdiff-backupを使用して/ etcの毎日の増分バックアップを/ var/backups /に保持します。費用はかからず、理解できない場合は多くの頭痛の種を節約できます。構成ファイルへの最後の変更が非常に大きな混乱を引き起こしている理由。
私はrsyncを、コロから自宅までのネットワークと、ホームボックスからリムーバブル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
Rackspaceクラウドファイルストレージでjunglediskを使用しています。それは毎晩行ってそのことを実行し、何をバックアップするかを指示するだけで、改訂(一種)も保持します。オフサイトで、かなり安価です。
このドキュメント Linuxで増分バックアップにrsyncを使用する方法を非常に詳細に説明しています。
すべてのホストに backuppc を使用しています。 rsync
が実際に受信側でRAM)を使いすぎたため、500GBのmaildirストアのみが問題でした。そのホストにtarとタイムスタンプベースの増分を使用するように切り替えました。
BackupExec 、無料で RALUS * NIXエージェント 。簡単にエクスポートでき、SAMBAを必要とせず、エージェントによってバックアップされているWindowsサーバーに適合します。
(テープ、オフサイト、または何かではなく)ディスクベースのシステムを探している場合は、 BackupPC を調べることをお勧めします。私たちはそれで良い経験をしました。ディスクスペースを有効に活用するためにファイルをプールすることはうまくいくようです。それは非常に構成可能であり、私たちにとって堅実です。
私は現在当店で使用しているBaculaをお勧めします。あなたがそれを必要としていることに気付いた場合、それは窓でも機能します。 :)
別の提案はアマンダかもしれませんが、私はそれを使ったことがありませんが、2つはしばしば互いに比較されます。
Baculaは、ユーザー(またはシステム管理者)がさまざまな種類のコンピューターのネットワーク全体でコンピューターデータのバックアップ、回復、および検証を管理できるようにするコンピュータープログラムのセットです。技術的には、ネットワーククライアント/サーバーベースのバックアッププログラムです。 Baculaは比較的使いやすく効率的ですが、紛失または破損したファイルを簡単に見つけて回復できる高度なストレージ管理機能を多数提供しています。そのモジュラー設計により、Baculaは、小さな単一のコンピューターシステムから、大規模なネットワーク上に配置された数百台のコンピューターで構成されるシステムまで拡張可能です。
backupninja ラッパーbashスクリプトのユーザーに満足しています。標準リポジトリのパッケージとしてdebianで利用できます。
直接使用するデータの種類に応じて rdiff-backup Andrew Cholakianが言及するか、最初にLVMボリュームのスナップショットを取り[tinkertimが言及]、次にrdiff-backupを実行します。
rdiff-backupは、不良ネットワークリンク上ではあまり効率的に機能しません。そのような場合、ローカルでrdiff-backupを実行してから、rsyncを使用してバックアップリポジトリをリモートサーバーと同期します。
プロプライエタリの世界では、 R1Soft は非常に良い仕事をしています。彼らが無料でリリースするデモツールを試してみてください。
自由な世界では、lvmスナップショット、dd、netcatを使用して迅速なバックアップを作成しています。 dm_snapshotがinitrdに存在することを確認してください:)
どこにバックアップしますか? rsyncは、別のLinuxサーバーにバックアップする場合に、ディレクトリのコピーの同期を維持するための非常に貴重なツールになる可能性があります。以前のバックアップを調達することにより、時間ベースのバックアップを維持できます。基本的に毎回完全バックアップを取得していますが、変更されたファイルのみがプルされます。これは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
誰も言及していないなんて信じられない 重複 。私はそれを十分に推薦することはできません。 FTPからssh、S3までの複数のバックエンドがあり、暗号化(gpg)と増分バックアップを実行し、復元プロセスは非常に簡単です。