From: Bastian Dehn Date: Thu, 12 Jan 2017 18:19:15 +0000 (+0100) Subject: add: VM Offline Backup X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=8ff5cec444f0e6d73f23093f365faebd9525b340;p=simple-backup.git add: VM Offline Backup --- diff --git a/backup.sh b/backup.sh index 7e15678..14f0fe9 100755 --- a/backup.sh +++ b/backup.sh @@ -25,10 +25,45 @@ do # Sicherung fuer die jeweils angegebenen Pfade in pfad.txt erstellen inkl. logs for pfad in $(cat pfad-$remoterechner.txt) do - echo - echo "Rechner $remoterechner; Pfad $pfad wird gesichert" - echo - rsync -avR --log-file=$sicherungspfad/$sicherungsordner/$remoterechner/backup-$(echo $pfad | sed 's/\//-/g').log --link-dest=$sicherungspfad/$vorsicherungsordner/$remoterechner $remoteuser@$remoterechner:$pfad $sicherungspfad/$sicherungsordner/$remoterechner + if [ "$pfad" == "virsh" ] + then + onlineVM=$(ssh $remoteuser@$remoterechner virsh list --name) + offlineVM=$(ssh $remoteuser@$remoterechner virsh list --all | grep 'shut off' | awk '{print $2}') + for VM in $onlineVM + do + echo "Fahre $VM herunter" + echo + ssh $remoteuser@$remoterechner virsh shutdown $VM | while [ "$(ssh $remoteuser@$remoterechner virsh list --name | grep $VM)" != "" ]; do sleep 2 ; done + Disks=$(ssh $remoteuser@$remoterechner virsh domblklist $VM --details | grep disk | awk '{print $4}') + for Disk in $Disks + do + echo "Disk $Disk von $VM wird gesichert" + echo + rsync -avR --progress --log-file=$sicherungspfad/$sicherungsordner/$remoterechner/backup-$(echo $Disk | sed 's/\//-/g').log --link-dest=$sicherungspfad/$vorsicherungsordner/$remoterechner $remoteuser@$remoterechner:$Disk $sicherungspfad/$sicherungsordner/$remoterechner + done + echo + echo "Fahre $VM hoch" + ssh $remoteuser@$remoterechner virsh start $VM + done + for VM in $offlineVM + do + echo "$VM ist offline" + echo + Disks=$(ssh $remoteuser@$remoterechner virsh domblklist $VM --details | grep disk | awk '{print $4}') + for Disk in $Disks + do + echo + echo "Disk $Disk von $VM wird gesichert" + echo + rsync -avR --progress --log-file=$sicherungspfad/$sicherungsordner/$remoterechner/backup-$(echo $Disk | sed 's/\//-/g').log --link-dest=$sicherungspfad/$vorsicherungsordner/$remoterechner $remoteuser@$remoterechner:$Disk $sicherungspfad/$sicherungsordner/$remoterechner + done + done + else + echo + echo "Rechner $remoterechner; Pfad $pfad wird gesichert" + echo + rsync -avR --log-file=$sicherungspfad/$sicherungsordner/$remoterechner/backup-$(echo $pfad | sed 's/\//-/g').log --link-dest=$sicherungspfad/$vorsicherungsordner/$remoterechner $remoteuser@$remoterechner:$pfad $sicherungspfad/$sicherungsordner/$remoterechner + fi done done