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