From: Bastian Dehn Date: Thu, 15 Jun 2017 17:02:21 +0000 (+0200) Subject: add: mode full backup X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=9ec0339496f9035a455c0cb10ff21a966dc2adc1;p=simple-backup.git add: mode full backup --- diff --git a/backup b/backup index 88118d6..07ceb45 100755 --- 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