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>Itommes Keine Bearbeitungszusammenfassung |
||
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 44: | Zeile 44: | ||
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: "local" = local_Backup_Filme.sh | | |||
# local_Filme.sh oder auch Filme_local_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: local_Backup_Filme.sh wird ausgeführt test_Backup_Filme.sh | | |||
# jedoch nicht. | | |||
#------------------------------------------------------------------------- | |||
SCRIPT_STRING="local" | |||
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> |
Version vom 30. März 2016, 19:09 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 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/usbshare/$SCRIPT ]; then sh /volumeSATA/usbshare/$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: "local" = local_Backup_Filme.sh | # local_Filme.sh oder auch Filme_local_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: local_Backup_Filme.sh wird ausgeführt test_Backup_Filme.sh | # jedoch nicht. | #------------------------------------------------------------------------- SCRIPT_STRING="local" 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