From 8eb5d639b995e85b4c69e0f77ff85064b0a50ace Mon Sep 17 00:00:00 2001 From: Miguel Date: Wed, 1 Aug 2018 12:57:52 +0200 Subject: added kvm tools and some simple scripts --- kvm_tools/kvm_live_restore.sh | 96 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100755 kvm_tools/kvm_live_restore.sh (limited to 'kvm_tools/kvm_live_restore.sh') diff --git a/kvm_tools/kvm_live_restore.sh b/kvm_tools/kvm_live_restore.sh new file mode 100755 index 0000000..b2d6fcb --- /dev/null +++ b/kvm_tools/kvm_live_restore.sh @@ -0,0 +1,96 @@ +#!/bin/bash + +#TODO: move helpers to another file/lib +#TODO: Add sudo everywhere.. +#TODO: remove --strip-components as soon as we get new backups with tar -C +#TODO: check if a virbr1 is available + +VERSION="0.1" + +sudo brctl addbr virbr1 + +set -e + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 [config_file]" + exit +fi + +# color helpers (set on terminal only) +black= +red= +green= +yellow= +blue= +magenta= +cyan= +white= +reset= +if test -t 1; then +black=`tput setaf 0` +red=`tput setaf 1` +green=`tput setaf 2` +yellow=`tput setaf 3` +blue=`tput setaf 4` +magenta=`tput setaf 5` +cyan=`tput setaf 6` +white=`tput setaf 7` +reset=`tput sgr0` +fi + +# pretty printing funcs / vars + +cnt=0 +all=5 + +function print_ok { + echo [${green}OK$reset] +} +function print_cnt { + printf " [${cyan}%2s${reset}/${all}${reset}] " ${1} +} +function print_txt { + ((++cnt)) + print_cnt $cnt + printf "%-30s " "${1}..." +} + +echo +echo "### ${magenta}FOOL LIVE KVM RESTORE ${VERSION}${reset} ###" +echo +echo " Using config file: ${yellow}${1}${reset}" +echo +source $1 + +UUID=$(uuid) +LOG=$TARGET/log.log + +echo +print_txt "SED xml DEFINITION" + +#sed "s:.*:$UUID:" \ +# diff $SOURCE/$PREFIX.xml $TARGET/$NAME.xml + +sudo -u $USER cat $SOURCE/$PREFIX.xml | +sed "s:.*:$NAME:" | +sed "s:::" \ + > $TARGET/$NAME.xml +print_ok + + +print_txt "UNTAR QCOW2 IMAGE" +cat $SOURCE/$PREFIX.img.tar | pv -L $LIMIT_RATE 2>/dev/null | tar -C $TARGET --strip-components=$STRIP_TAR -xSf - +print_ok + +print_txt "RENAME QCOW2 IMAGE" +sudo -u $USER mv $TARGET/*.img $TARGET/$NAME.img +print_ok + +print_txt "DEFINE NEW KVM" +sudo -u $USER sudo virsh define $TARGET/$NAME.xml > $LOG +print_ok + +print_txt "RESTORE RUNNING KVM" +sudo -u $USER sudo virsh restore $SOURCE/$PREFIX.ram --xml $TARGET/$NAME.xml > $LOG +print_ok + -- cgit v1.2.3