Dateibasierte RSync-Datensicherung auf externen Datenträger oder RSync kompatiblen Server/Suchscriptvarianten: Unterschied zwischen den Versionen

Aus
(Die Seite wurde neu angelegt: „=- Variante 1: Scripte anhand ihrer vollständigen Script-Dateinamen suchen und ausführen.'''= <pre> #!/bin/sh # Kurze Funktionsbeschreibung # -------------…“)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
=- Variante 1: Scripte anhand ihrer vollständigen Script-Dateinamen suchen und ausführen.'''=
'''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