From: Bastian Dehn Date: Sat, 7 Jan 2017 20:19:50 +0000 (+0100) Subject: init commit X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=abed9e0d3bfb096504199b188968d5ee379ca951;p=simple-backup.git init commit --- abed9e0d3bfb096504199b188968d5ee379ca951 diff --git a/backup-einfach.sh b/backup-einfach.sh new file mode 100755 index 0000000..da815e9 --- /dev/null +++ b/backup-einfach.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Informationen fuer den Sicherungsserver +sicherungspfad="/images/backup" +sicherungsname="einfach-sicherung" + +# Sicherungsordnernamen +sicherungsordner="$sicherungsname" +# Sicherungsordner auf dem Sicherungsserver erstellen +if [ ! -d $sicherungspfad/$sicherungsordner ] +then + mkdir $sicherungspfad/$sicherungsordner +fi + +for x in $(cat rechner.txt) +do + remoteuser="root" + remoterechner=$x + # Sicherungsordner auf dem Sicherungsserver erstellen + if [ ! -d $sicherungspfad/$sicherungsordner/$remoterechner ] + then + mkdir $sicherungspfad/$sicherungsordner/$remoterechner + fi + + # Sicherung fuer die jeweils angegebenen Pfade in pfad.txt erstellen inkl. logs + for i in $(cat pfad-$x.txt) + do + pfad=$i + echo + echo "Rechner $x; Pfad $i wird gesichert" + echo + rsync -avR --delete --log-file=$sicherungspfad/$sicherungsordner/$remoterechner/backup-$(echo $pfad | sed 's/\//-/g').log $remoteuser@$remoterechner:$pfad $sicherungspfad/$sicherungsordner/$remoterechner + done +done diff --git a/backup.sh b/backup.sh new file mode 100755 index 0000000..9723469 --- /dev/null +++ b/backup.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# Informationen fuer den Sicherungsserver +sicherungspfad="/images/backup" +sicherungsname="sicherung" +wunschanzahl=20 + +# Sicherungsordnernamen generieren und Vorsicherungsordnername generieren +sicherungsordner="$(date +%Y-%m-%d)"_"$sicherungsname" +vorsicherungsordner="$(date -d "1 Day ago" +%Y-%m-%d)"_"$sicherungsname" +if [ ! -d $sicherungspfad/$vorsicherungsordner ] +then + tmpordner=$(find $sicherungspfad -maxdepth 1 -type d -name "*_"$sicherungsname"" | sort | tail -n 1) + vorsicherungsordner=${tmpordner##*/} +fi +# Sicherungsordner auf dem Sicherungsserver erstellen +mkdir $sicherungspfad/$sicherungsordner + +for x in $(cat rechner.txt) +do + remoteuser="root" + remoterechner=$x + # Sicherungsordner auf dem Sicherungsserver erstellen + mkdir $sicherungspfad/$sicherungsordner/$remoterechner + + # Sicherung fuer die jeweils angegebenen Pfade in pfad.txt erstellen inkl. logs + for i in $(cat pfad-$x.txt) + do + pfad=$i + echo + echo "Rechner $x; Pfad $i 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 + done +done + +############################## + +# Aeltere Sicherungen loeschen +backupanzahl=$(ls -d $sicherungspfad/*/ | grep "_$sicherungsname" | sort | wc -l) +loeschanzahl=$(($backupanzahl - $wunschanzahl)) + +if [ $backupanzahl -gt $wunschanzahl ] +then + echo + echo "Es sind $backupanzahl Sicherungen vorhanden." + echo "Es werden $loeschanzahl Sicherungen gelöscht." + echo + ls -d $sicherungspfad/*/ | grep "_$sicherungsname" -m $loeschanzahl | xargs rm -r +else + echo + echo "Es sind $backupanzahl Sicherungen vorhanden." + echo +fi