Dateibasierte RSync-Datensicherung auf externen Datenträger oder RSync kompatiblen Server/Suchscriptvarianten
Aus Synology Wiki
Variante 1: Scripte anhand ihrer vollständigen Script-Dateinamen auf extern angeschlossenen Datenträgern suchen und ausführen
#!/bin/sh
# Kurze Funktionsbeschreibung
# ------------------------------------------------------------------------
# Das Script kann manuell oder automatisiert über den Aufgabenplaner |
# als "root" ausgeführt werden, je nachdem ob der externe Datenträger |
# temporär oder permanent mit der DS verbunden wird. |
# Nach dem Start des Scriptes werden alle USB- sowie SATA Anschlüsse der |
# DS nach extern angeschlossenen Datenträgern durchsucht um im jeweiligen|
# Wurzelverzeichnis ein oder mehrere abgelegte Scripte zu lokalisieren. |
# Es besteht also die Möglichkeit mehrere Scripte auszuführen, die dazu |
# noch auf unterschiedlichen Datenträgern liegen. Dabei ist es auch nicht|
# zwingend erforderlich, das alle Script permanent verfügbar sein müssen.|
# Wird ein Script oder mehrere Scripte gefunden, werden diese |
# ausgeführt und somit das eigentliche Backupsystem angestoßen. |
# Im Vorfeld muß natürlich noch das rsync.sh Script den jeweiligen |
# Bedürfnissen angepasst werden. |
# ------------------------------------------------------------------------
SCRIPTNAME="Diskstation-Backup.sh"
# ------------------------------------------------------------------------
# Ab hier bitte nichts mehr ändern |
# ------------------------------------------------------------------------
for SCRIPT in $SCRIPTNAME
do
# Durchsuche volumeUSB1
if [ -f /volumeUSB1/usbshare/$SCRIPT ]; then
sh /volumeUSB1/usbshare/$SCRIPT
fi
# Durchsuche volumeUSB2
if [ -f /volumeUSB2/usbshare/$SCRIPT ]; then
sh /volumeUSB2/usbshare/$SCRIPT
fi
# Durchsuche volumeUSB3
if [ -f /volumeUSB3/usbshare/$SCRIPT ]; then
sh /volumeUSB3/usbshare/$SCRIPT
fi
# Durchsuche volumeSATA
if [ -f /volumeSATA/satashare/$SCRIPT ]; then
sh /volumeSATA/satashare/$SCRIPT
fi
done
Variante 2: Scripte anhand einer Zeichenkette auf extern angeschlossenen Datenträgern sowie auf der Diskstation selber suchen, ausschließen oder ausführen
#!/bin/sh
# Zeichenkette auf der DS sowie angeschlossenen Datenträgern suchen
# ------------------------------------------------------------------------
# Hierbei werden nicht nur extern angeschlossene USB- und SATA |
# Datenträger, sondern auch alle Volume innerhalb der Diskstation |
# |
# Es ist nicht erforderlich, den kompletten Script-Dateinamen anzugeben. |
# Es reicht die Eingabe einer Zeichenkette, die in jedem auszuführenden |
# Script-Dateinamen enthalten sein muss. |
# Beispiele für die Zeichenkette: "start" = start_Backup_Filme.sh |
# start_Filme.sh oder auch _start_Filme_sichern.sh |
# |
# Soll eine Scriptausführung bei einer bestimmten Zeichenkette verhindert|
# werden, weil sich ein Script z.B. noch im Testbetrieb befindet, kann |
# dies über die Variable EXCLUDE_STRING gesteuert werden. |
# Beispiel: start_Backup_Filme.sh wird ausgeführt test_Backup_Filme.sh |
# jedoch nicht. |
#-------------------------------------------------------------------------
SCRIPT_STRING="start"
EXCLUDE_STRING="test"
if [ "$EXCLUDE_STRING" ]
then
find /volume*/ -type f -name "*$SCRIPT_STRING*.sh" ! -name "*$EXCLUDE_STRING*" -exec sh {} \;
else
find /volume*/ -type f -name "*$SCRIPT_STRING*.sh" -exec sh {} \;
fi