rsync Skript
von MSfree- SNIPPET_TEXT:
-
- #/bin/bash
- #=====================================================
- # customize SRC, DSTDIR, HTMLLOGDIR, PREFIX:
- #
- # SRC = Hostname und Freigabename der Quelle
- SRC=quellrechner::pub
- # DSTDIR = Vereichnis, unter dem die Backups auf dem Ziel angelegt werden
- DSTDIR=/volume1/backup
- # HTMLLOGDIR = Vereichnis, unter dem die Logs auf dem Ziel angelegt werden
- HTMLLOGDIR=/volume1/RSyncLog
- # PREFIX: "Vorsilbe", die den täglichen Unterverzeichnisnamen vorgehängt wird
- PREFIX=daily
- #=====================================================
- # automatische Variablen, keine Anpssung nötig
- #=====================================================
- DST=$DSTDIR/$PREFIX-$DATE
- BUS=$DSTDIR/.running-$DATE
- HTMLLOG=$HTMLLOGDIR/log-$DATE.html
- #=====================================================
- # anlegen der Ausgabeverzeichnisse
- #=====================================================
- if test ! -d $DSTDIR
- then
- mkdir $DSTDIR
- fi
- then
- fi
- if test ! -d $HTMLLOGDIR
- then
- mkdir $HTMLLOGDIR
- fi
- #=====================================================
- # prüfen, ob rsync mit --link-dest laufen soll
- #=====================================================
- if test -z "$PREV"
- then
- HARDLINK=""
- else
- HARDLINK=--link-dest=$PREV
- fi
- #=====================================================
- # Kopf der Logdate erzeugen
- #=====================================================
- echo "================================================" > $LOG
- echo "Started at " $CURRENTTIME >> $LOG
- echo "================================================" >> $LOG
- echo "Fetching from " $SRC >> $LOG
- echo "Storing at " $DST >> $LOG
- echo "Hardlinking from " $PREV >> $LOG
- echo "================================================" >> $LOG
- #=====================================================
- # rsync aufrufen und bei Fehler neu starten
- # die Sicherung wird hier erstmal in ein temporäres
- # Verzeichnis geschrieben
- #=====================================================
- while ! \
- rsync -av $HARDLINK $SRC $BUS >> $LOG 2>&1
- do
- sleep 60
- done
- #=====================================================
- # Sicherungsverzechnis in endgültigen Namen umbenennen
- # und mit touch auf die aktuelle Uhrzeit setzen
- #=====================================================
- mv $BUS $DST
- touch $DST
- #=====================================================
- # Ende der Logdate erzeugen
- #=====================================================
- echo "================================================" >> $LOG
- echo "Finished at " $CURRENTTIME >> $LOG
- echo "================================================" >> $LOG
- #=====================================================
- # Logdate HTML umsetzen, damit man sie leichter in
- # einem Browser lesen kann.
- #=====================================================
- awk '
- BEGIN {
- print "<!DOCTYPE html>"
- print "<html>"
- print " <head>"
- print " <meta charset="UTF-8">"
- print " <title>TimAchine Backup Log</title>"
- print " </head>"
- print " <body>"
- }
- {
- print " "$0"<br>"
- }
- END{
- print " </body>"
- print "</html>"
- }' $LOG > $HTMLLOG
- #=====================================================
- # originale Logdate komprimieren, um Platz zu sparen
- #=====================================================
- gzip -9 $LOG
Quellcode
Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN