Thanks Thanks:  2
Ergebnis 1 bis 1 von 1
  1. #1
    Senior Mitglied Avatar von Pike_Bishop
    Registriert seit
    11.02.2020
    Ort
    here and there
    Beiträge
    389
    Total Downloaded
    0
    Total Downloaded
    0
    ReceiverDankeAktivitäten
    Box 1:
    Mutant HD2400
     
     
    Box 2:
    VU Ultimo 4K
     
     
    Box 3:
    Octagon SF8008
     
     
    Box 4:
    VDR
     
     

    AutoLink für Freigabe zu HDD ner Zweitbox

    Hi,

    Hier mal ein Script welches mit Hilfe von cron nen Link zu ner Freigabe wie z.b: ner Samba Freigabe (HDD ner Zweitbox) im movie Verzeichnis der Internen Platte an der Erstbox erstellt.
    Das Ganze funktioniert so;
    1.) Ist die Freigabe erreichbar wird ein Link erstellt (dazu wird einfach das Vorhandensein eines bestimmten Verzeichnisses abgefragt ( Variable -> CHECKDIR).
    2.) Wird z.b: die Zweitbox heruntergefahren ist die Freigabe danach ja nicht mehr erreichbar und somit wird der Link wieder gelöscht.


    Das Script ist als Beispiel zu sehen, es heisst bei mir hier sz_box_cifswithcron_link.sh und liegt natürlich auf der Box in /usr/script, es sieht so aus;
    Code:
    #!/bin/sh
    
    BOX=VU_ULTIMO4K
    FREIGABE=/media/autofs/SZ-BOX_cifs
    CHECKDIR=movie
    INTERNAL_MOUNTPOINT="/media/hdd"
    LINK="$INTERNAL_MOUNTPOINT/movie/___SZ_Platte"
    TMP=/tmp
    LOGFILE=$TMP/sz-box_hdd_cifs.log
    
    
    
    
    exec 3>&1 4>&2
    trap 'exec 2>&4 1>&3' 0 1 2 3
    exec 1>>$LOGFILE 2>&1
    
    
    if [ ! -d $FREIGABE/$CHECKDIR ] ; then
    	if [ -h $LINK ] ; then
    		rm $LINK
    		DATE="$(date +%a.%d.%b.%Y-%H:%M)"
    		echo -e "$DATE\nLink $LINK\nwurde geloescht.\n"
    	else
    		exit
    	fi
    fi
    
    
    if [ -d $FREIGABE/$CHECKDIR ] ; then
    	if [ ! -h $LINK ] ; then
    		ln -s $FREIGABE/$CHECKDIR $LINK
    		DATE="$(date +%a.%d.%b.%Y-%H:%M)"
    		echo -e "$DATE\nLink $LINK\nwurde erstellt.\n"
    	else
    		exit
    	fi
    fi
    
    
    
    
    exit
    Wichtig und relevant in dem Script sind die Variablen wie folgt;
    HINWEIS ! am Besten keine Leerzeichen bei Variablen verwenden, falls aber doch dann die betreffende Variable in "" einschliessen also z.b: so BOX="VU ULTIMO4K"

    BOX=VU_ULTIMO4K
    FREIGABE=/media/autofs/SZ-BOX_cifs
    CHECKDIR=movie
    INTERNAL_MOUNTPOINT="/media/hdd"
    LINK="$INTERNAL_MOUNTPOINT/movie/___SZ_Platte"

    LOGFILE=$TMP/sz-box_hdd_cifs.log



    Diese Variablen also muss der User für seine Gegebenheiten (Wünsche) anpassen, ich erklär es kurz;

    BOX ist eh klar, also je nach Box eben abbändern zu z.b: BOX=GIGABLUE_4K

    FREIGABE
    ist bei mir hier /media/autofs/SZ-BOX_cifs

    CHECKDIR
    sollte man belassen wie es ist also auf movie
    (es wird vorrausgesetzt das es immer nen Ordner movie gibt sowohl auf der Internen Platte als auch auf der Platte der Zweitbox die freigegeben wird in denen die Aufnahmen liegen).

    INTERNAL_MOUNTPOINT sollte normalerweise eh bei den meisten immer /media/hdd sein aber falls z.b: /media/usb dann eben dahingehend anpassen.

    LINK sollte man nur ab $INTERNAL_MOUNTPOINT/movie/ also dahinter anpassen also z.b: zu LINK="$INTERNAL_MOUNTPOINT/movie/HD51_HDD"
    in meinem Beispiel erscheint dann der Link im movie Verzeichnis der Internen Platte als___SZ_Platte wobei die Unterstriche am Anfang dafür sorgen das der Link ganz oben
    in der Movieliste erscheint (und wobei im EMC die Unterstriche ja ausgeblendet werden können, man würde also nur SZ_Platte sehen und dennoch wär der Link ganz oben in der Movieliste).
    Und dieser Link stellt dann die Freigabe zur HDD der Zweitbox dar.

    LOGFILE kann ab $TMP/ also wieder nur dahinter angepasst werden z.b: zu LOGFILE=$TMP/hd51_hdd_cifs.log


    Das Script darf nur mit nem Linuxtauglichen Editor wie z.b: mit Notepad++ editiert (angepasst) werden.
    Wenn man es dann an der Box nach /usr/script kopiert hat muss es noch mit dem telnet Befehl wie folgt ausführbar gemacht werden;
    Code:
    chmod 755 /usr/script/sz_box_cifswithcron_link.sh
    Wer es anders benennt z.b: zu zweitbox_link.sh der müsste es stattdessen wie folgt ausführbar machen;
    Code:
    chmod 755 /usr/script/zweitbox_link.sh

    Und zu guter Letzt, damit das Script automatsich arbeiten kann benötigt es nen Eintrag im cron dazu (also nen Cronjob), den man z.b: wenn das Script wie ich es benannt habe also zu
    sz_box_cifswithcron_link.sh
    wie folgt in telnet erstellen kann;
    Code:
    (crontab -l 2>/dev/null; echo "* * * * * sh /usr/script/sz_box_cifswithcron_link.sh") | crontab -
    Wer das Script anders benennt muss den obigen Befehl wieder dahingehend anpassen.


    Mit nem abschliessenden Box Neustart ist das dann fertig.


    Wie funktioniert das nun ?
    Nun ja , Die Erstbox fährt hoch und das Script wird vom cron alle Minuten gestartet, ist die Freigabe (also die Zweitbox) erreichbar legt das Script den Link im Movieverzeichnis der Internen Platte an.
    Ist die Freigabe hingegen nicht erreichbar beendet sich das Script einfach wieder (tut also quasi gar nix).

    Wurde da die Freigabe erreichbar war der Link erstellt und nun fährt jemand die Zweitbox runter ist die Freigabe ja wieder nicht erreichbar und somit löscht das Script den Link wieder.
    Wie an den Variablen eh zu erkennen wird auch ein Logfile erstellt unter /tmp an der Box (kann man sich mit dem Filecommander direkt an der Box angucken wer will)


    Der Sinn dieses Scripts ?
    Dadurch gibt es keine toten Links.
    und für mich aber wichtiger, man sieht sofort in der Movieliste der Erstbox ob die Zweitbox läuft da ja der Link nur dann vorhanden ist.

    Sonstiges !
    Für ein NAS ist das nicht sinnvoll denn das sollte sowieso immer an sein, da tuts ein dauerhafter Link (einmalig erstellt), es ist also nur sinnvoll bei ner Freigabe ner weiteren Box da ja nicht immer alle Boxen laufen.


    Grüsse
    Pike
    Geändert von Pike_Bishop (03.11.2020 um 19:12 Uhr)

  2. Thanks harry0815, ebr85 bedankten sich
    •   Alt Advertising

       


Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Diese Website benutzt Cookies
Wir benutzen Cookies um Sitzungsinformationen zu speichern. Dies erleichtert es uns z.B. Dich an Deine Login zu erinnern, Einstellungen der Webseite zu speichern, Inhalte und Werbung zu personalisieren, Social Media Funktionen anzubieten und unser Datenaufkommen zu analysieren. Wir teilen diese Informationen ebenfalls mit unseren Social Media-, Werbe- und Analysepartnern.
     
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:34 Uhr.
Powered by vBulletin® Version 4.2.5 (Deutsch)
Copyright ©2020 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.
Resources saved on this page: MySQL 11,11%
Parts of this site powered by vBulletin Mods & Addons from DragonByte Technologies Ltd. (Details)
vBulletin Skin By: PurevB.com