]> gitweb.hhaalo.de Git - simple-backup.git/commitdiff
add: VM Offline Backup
authorBastian Dehn <hhaalo@arcor.de>
Thu, 12 Jan 2017 18:19:15 +0000 (19:19 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Thu, 12 Jan 2017 18:19:15 +0000 (19:19 +0100)
backup.sh

index 7e156783a9ed35fc3ac2389932a58ca6b93fd8b3..14f0fe90bccf4eb6ff1b3903ec428aae95601f77 100755 (executable)
--- 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