]> gitweb.hhaalo.de Git - simple-backup.git/commitdiff
add: mode full backup
authorBastian Dehn <hhaalo@arcor.de>
Thu, 15 Jun 2017 17:02:21 +0000 (19:02 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Thu, 15 Jun 2017 17:02:21 +0000 (19:02 +0200)
backup

diff --git a/backup b/backup
index 88118d6b36d4685a7b67b05be2a311395295ceb8..07ceb45f30d1107e6cf7bb10800e26f3ad62ec53 100755 (executable)
--- a/backup
+++ b/backup
@@ -7,6 +7,18 @@
 sicherungspfad="/images/backup"
 sicherungsname="sicherung"
 wunschanzahl=20
+mode="incremental"
+
+if [ -n "$1" ]; then
+       case "$1" in
+         "full")
+               mode="$1"
+               ;;
+         *)
+               mode="incremental"
+               ;;
+       esac
+fi
 
 # Sicherungsordnernamen generieren
 # und Vorsicherungsordnername ermitteln
@@ -43,7 +55,10 @@ for remoterechner in $(cat rechner.txt); do
                                Disks=$(ssh $remoteuser@$remoterechner virsh domblklist $VM --details | grep disk | awk '{print $4}')
                                for Disk in $Disks; do
                                        printf "Disk %s von %s wird gesichert\n\n" "$Disk" "$VM"
-                                       rsync --archive --verbose --sparse --acls --hard-links --relative --progress --log-file=$sicherungspfad/$sicherungsordner/$remoterechner/backup-$(echo $Disk | sed 's/\//-/g').log --link-dest=$sicherungspfad/$vorsicherungsordner/$remoterechner $remoteuser@$remoterechner:$Disk $sicherungspfad/$sicherungsordner/$remoterechner
+                                       if [ "$mode" == "incremental" ]; then
+                                               hardlinkopt="--link-dest=$sicherungspfad/$vorsicherungsordner/$remoterechner"
+                                       fi
+                                       rsync --archive --verbose --sparse --acls --hard-links --relative --progress --log-file=$sicherungspfad/$sicherungsordner/$remoterechner/backup-$(echo $Disk | sed 's/\//-/g').log $hardlinkopt $remoteuser@$remoterechner:$Disk $sicherungspfad/$sicherungsordner/$remoterechner
                                done
                                printf "\nFahre %s hoch\n" "$VM"
                                ssh $remoteuser@$remoterechner virsh start $VM
@@ -55,7 +70,10 @@ for remoterechner in $(cat rechner.txt); do
                                Disks=$(ssh $remoteuser@$remoterechner virsh domblklist $VM --details | grep disk | awk '{print $4}')
                                for Disk in $Disks; do
                                        printf "Disk %s von %s wird gesichert\n\n" "$Disk" "$VM"
-                                       rsync --archive --verbose --sparse --acls --hard-links --relative --progress --log-file=$sicherungspfad/$sicherungsordner/$remoterechner/backup-$(echo $Disk | sed 's/\//-/g').log --link-dest=$sicherungspfad/$vorsicherungsordner/$remoterechner $remoteuser@$remoterechner:$Disk $sicherungspfad/$sicherungsordner/$remoterechner
+                                       if [ "$mode" == "incremental" ]; then
+                                               hardlinkopt="--link-dest=$sicherungspfad/$vorsicherungsordner/$remoterechner"
+                                       fi
+                                       rsync --archive --verbose --sparse --acls --hard-links --relative --progress --log-file=$sicherungspfad/$sicherungsordner/$remoterechner/backup-$(echo $Disk | sed 's/\//-/g').log $hardlinkopt $remoteuser@$remoterechner:$Disk $sicherungspfad/$sicherungsordner/$remoterechner
                                done
                                printf "################################################################\n"
                        done
@@ -64,7 +82,10 @@ for remoterechner in $(cat rechner.txt); do
                        # Es werden Dateien mit *.qcow2 und *.raw ingnoriert
                        printf "################################################################\n"
                        printf "Rechner %s; Pfad %s wird gesichert\n\n" "$remoterechner" "$pfad"
-                       rsync --archive --verbose --sparse --acls --hard-links --relative --log-file=$sicherungspfad/$sicherungsordner/$remoterechner/backup-$(echo $pfad | sed 's/\//-/g').log --filter="- *.qcow2" --filter="- *.raw" --link-dest=$sicherungspfad/$vorsicherungsordner/$remoterechner $remoteuser@$remoterechner:$pfad $sicherungspfad/$sicherungsordner/$remoterechner
+                       if [ "$mode" == "incremental" ]; then
+                               hardlinkopt="--link-dest=$sicherungspfad/$vorsicherungsordner/$remoterechner"
+                       fi
+                       rsync --archive --verbose --sparse --acls --hard-links --relative --log-file=$sicherungspfad/$sicherungsordner/$remoterechner/backup-$(echo $pfad | sed 's/\//-/g').log --filter="- *.qcow2" --filter="- *.raw" $hardlinkopt $remoteuser@$remoterechner:$pfad $sicherungspfad/$sicherungsordner/$remoterechner
                        printf "################################################################\n"
                fi
        done