Domain-U用バックアップスクリプト

  • バックアップ要件
    • Domain-Uをオンラインの状態でバックアップする(LVMスナップショット)
    • 日曜日にフルバックアップ、平日は差分バックアップを行う(LVMスナップショットをdump)
    • スナップショットのサイズは、全ファイルが変更される場合を考慮し、バックアップ対象の最大サイズとする*1
#!/bin/sh
##
# File: lvmbackup
# Usage: lvmbackup %targetLVname%
##
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PREFIX=/dev/xenVG
LV_NAME=$1
SNAP_SIZE=20G
SNAP_NAME=${LV_NAME}_snap
BACKUP_DIR=/backup/xen

lvremove -f ${PREFIX}/${SNAP_NAME}
lvcreate --snapshot -L $SNAP_SIZE -n $SNAP_NAME ${PREFIX}/${LV_NAME}

if [ `date +%w` = 0 ];
then
  DUMP_LV=0
else
  DUMP_LV=1
fi

dump -$DUMP_LV -u -f ${BACKUP_DIR}/${LV_NAME}-${DUMP_LV}-`date +%Y%m%d%H%M` ${PREFIX}/${SNAP_NAME}

リストアは通常通り"restore"コマンドで行う。

$ sudo restore -t -f %BackupFile%   # ファイル確認
$ sudo restore -rv -f %BackupFile%   # リストア

*1:全ファイル変更はあまり考えられないので、環境によって調整する。