diff options
| author | Miguel <m.i@gmx.at> | 2018-08-01 12:57:52 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-08-01 12:57:52 +0200 |
| commit | 8eb5d639b995e85b4c69e0f77ff85064b0a50ace (patch) | |
| tree | a7e7448ad6648cf0d130fabae31169a058e65993 /kvm_tools/kvm_live_restore.sh | |
added kvm tools and some simple scripts
Diffstat (limited to 'kvm_tools/kvm_live_restore.sh')
| -rwxr-xr-x | kvm_tools/kvm_live_restore.sh | 96 |
1 files changed, 96 insertions, 0 deletions
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>.*</uuid>:<uuid>$UUID</uuid>:" \ +# diff $SOURCE/$PREFIX.xml $TARGET/$NAME.xml + +sudo -u $USER cat $SOURCE/$PREFIX.xml | +sed "s:<name>.*</name>:<name>$NAME</name>:" | +sed "s:<source *file=.*/>:<source file='$TARGET/$NAME.img'/>:" \ + > $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 + |
