]> gitweb.hhaalo.de Git - simple-backup.git/commitdiff
init commit
authorBastian Dehn <hhaalo@arcor.de>
Sat, 7 Jan 2017 20:19:50 +0000 (21:19 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 7 Jan 2017 20:19:50 +0000 (21:19 +0100)
backup-einfach.sh [new file with mode: 0755]
backup.sh [new file with mode: 0755]

diff --git a/backup-einfach.sh b/backup-einfach.sh
new file mode 100755 (executable)
index 0000000..da815e9
--- /dev/null
@@ -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 (executable)
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