Dateibasierte RSync-Datensicherung auf externen Datenträger oder RSync kompatiblen Server/Suchscriptvarianten: Unterschied zwischen den Versionen
Aus Synology Wiki
imported>Itommes Die Seite wurde neu angelegt: „=- Variante 1: Scripte anhand ihrer vollständigen Script-Dateinamen suchen und ausführen.'''= <pre> #!/bin/sh # Kurze Funktionsbeschreibung # -------------…“ |
imported>Raymond Keine Bearbeitungszusammenfassung |
||
(3 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''Variante 1: Scripte anhand ihrer vollständigen Script-Dateinamen auf extern angeschlossenen Datenträgern suchen und ausführen''' | |||
<pre> | <pre> | ||
Zeile 17: | Zeile 17: | ||
# Wird ein Script oder mehrere Scripte gefunden, werden diese | | # Wird ein Script oder mehrere Scripte gefunden, werden diese | | ||
# ausgeführt und somit das eigentliche Backupsystem angestoßen. | | # ausgeführt und somit das eigentliche Backupsystem angestoßen. | | ||
# Im Vorfeld | # Im Vorfeld muss natürlich noch das rsync.sh Script den jeweiligen | | ||
# Bedürfnissen angepasst werden. | | # Bedürfnissen angepasst werden. | | ||
# ------------------------------------------------------------------------ | # ------------------------------------------------------------------------ | ||
Zeile 40: | Zeile 40: | ||
fi | fi | ||
# Durchsuche volumeSATA | # Durchsuche volumeSATA | ||
if [ -f /volumeSATA/ | if [ -f /volumeSATA/satashare/$SCRIPT ]; then | ||
sh /volumeSATA/ | sh /volumeSATA/satashare/$SCRIPT | ||
fi | fi | ||
done | done | ||
</pre> | |||
---- | |||
'''Variante 2: Scripte anhand einer Zeichenkette auf extern angeschlossenen Datenträgern sowie auf der Diskstation selber suchen, ausschließen oder ausführen''' | |||
<pre> | |||
#!/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 | |||
</pre> | </pre> |
Aktuelle Version vom 28. September 2020, 12:26 Uhr
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 muss 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