NFS Share per Skript mounten

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von f.gruber, 05.04.2014.

  1. #1 f.gruber, 05.04.2014
    f.gruber

    f.gruber Eroberer

    Dabei seit:
    07.01.2006
    Beiträge:
    52
    Zustimmungen:
    0
    Ich möchte ein NFS Share per Skript mounten. Wenn der Server aber nicht läuft, hängt das Skript endlos an dieser Stelle.
    Gibt es Optionen, sodass das Mounten nur eine gewisse Zeit versucht wird. Alle Optionen, die ich probiert habe, haben nichts gebracht.
    Code:
    mount -t nfs -o nfsvers=3 10.0.0.110:/media/disk /media/disk
    Code:
    mount -t nfs -o nfsvers=3,soft,intr,timeo=5 10.0.0.110:/media/disk /media/disk
    Tut mir leid, stehe wahrscheinlich komplett auf der Leitung.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Gast123, 05.04.2014
    Gast123

    Gast123 Guest

    Quick and dirty - ungetestet

    Code:
    #! /bin/bash
    
    PIDFILE="$(mktemp)"
    TIMEOUT=10
    
    { sleep ${TIMEOUT}; kill -2 $(cat ${PIDFILE}); } &
    
    mount -t nfs -o nfsvers=3 10.0.0.110:/media/disk /media/disk & echo $! > ${PIDFILE}
     
  4. #3 f.gruber, 05.04.2014
    f.gruber

    f.gruber Eroberer

    Dabei seit:
    07.01.2006
    Beiträge:
    52
    Zustimmungen:
    0
    Danke, das funktioniert. Um es zu verstehen, brauche ich leider Nachhilfe.
    Was bewirken die geschweiften Klammern in dieser Zeile?
    Code:
    { sleep ${TIMEOUT}; kill -2 $(cat ${PIDFILE}); }
     
  5. #4 Gast123, 05.04.2014
    Gast123

    Gast123 Guest

    Das bewirkt, dass sleep und danach kill zusammen als ein Programm imHintergrund ausgeführt werden, ohne eine subshell zu starten (Stichwort: Funktion).
    Es ginge in diesem Fall auch mit einer Subshell.
    Code:
    ( sleep ${TIMEOUT}; kill -2 $(cat ${PIDFILE}) ) &
    Allerdings vermeide ich diese, wo ich kann, da Subshell-Builtins sich nicht auf die Parent-shell auswirken.

    Hast du z.B. in einem Sktipt ein statement, das im Hintergrund das Skript beeden soll, z.B.:
    Code:
    /bin/dostuff || ( echo "Hat nicht geklappt!"; exit 1 )
    , so wirkt sich das exit nicht auf die Shell aus, in der
    Code:
     /bin/dostuff
    ausgeführt wird, sondern nur innerhalb der Subshell
    Code:
    (..)
    , wohingegen
    Code:
    /bin/dostuff || { echo "Hat nicht geklappt!"; exit 1; }
    die Shell in der /bin/dostuff ausgeführt wird mit beenden würde. 8)

    VG

    Schard
     
  6. #5 f.gruber, 05.04.2014
    f.gruber

    f.gruber Eroberer

    Dabei seit:
    07.01.2006
    Beiträge:
    52
    Zustimmungen:
    0
    Danke für die Erklärungen.
    Wäre es nicht einfacher, den Port 111 abzufragen, um zu sehen, ob der NFS Server läuft?
    Habe nämlich gerade gesehen, dass der Port 111 (rpcbind) aktiv ist, wenn der NFS Server in Betrieb ist. ...

    Dann versuche ich erst gar keinen Mount, wenn der Port mit nmap nicht aufgelistet wird ...
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 HeadCrash, 07.04.2014
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    Zu prüfen ob der NFS-Server läuft bevor man mountet ist auch ein Ansatz.
    Ich würde hier aber keinen Portscan machen sondern Überprüfen ob "showmount" vernünftige Ergebnise liefert.

    Code:
    showmount --exports 10.0.0.110
    
    sollte eine Liste aller NFS-Exports anzeigen
    Code:
    Export list for 10.0.0.110:
    /media/disk                   (Liste von clientips)
    
    und sich sofern erfolgreich mit dem Exitcode 0 beenden.

    Code:
    showmount 10.0.0.110 > /dev/null     &&      mount -t nfs -o nfsvers=3 10.0.0.110:/media/disk /media/disk
    
    mfg
    HeadCrash
     
  9. #7 f.gruber, 08.04.2014
    f.gruber

    f.gruber Eroberer

    Dabei seit:
    07.01.2006
    Beiträge:
    52
    Zustimmungen:
    0
    Danke, das ist ein guter Hinweis.
    Habe diese Zeilen jetzt in mein Skript eingefügt:
    Code:
    HOST=10.0.0.110
    MOUNTPOINT=/media/disk
    # NFS Mount versuchen
    showmount $HOST > /dev/null && mount -t nfs -o nfsvers=3,noauto $HOST:$MOUNTPOINT $MOUNTPOINT &> /dev/null
     
    if [ "$(nfsstat -m | grep $HOST:$MOUNTPOINT)" ] ; then # wenn NFS Share gemountet ist 
          mkdir -p $ZIEL_Verzeichnis  &> /dev/null
          HOST=localhost
          echo "-----------------------"
          echo Sicherung auf NFS Share $MOUNTPOINT
    else
          echo Kann $ZIEL_Verzeichnis nicht über NFS mounten.
          echo Versuche SSH Verbindung zum Host $HOST
          ...
    fi
     
Thema:

NFS Share per Skript mounten

Die Seite wird geladen...

NFS Share per Skript mounten - Ähnliche Themen

  1. Problem mit Registry Shares

    Problem mit Registry Shares: Hallo zusammen, ich habe ein AD auf Samba-4-Basis aufgebaut. Bisher hat alles soweit geklappt. Das AD läuft, ich kann Rechner hinzufügen, GPOs...
  2. mv auf Samba-Share mit 'preserving permissions'

    mv auf Samba-Share mit 'preserving permissions': Hallo, ich verschieben gerade einige *.rar-Dateien von meinem Downloadserver mit Raspbian (Raspberry Pi) auf meine per Samba gemountete...
  3. OwnCloud 7 Enterprise mit Sharepoint-Anbindung

    OwnCloud 7 Enterprise mit Sharepoint-Anbindung: Die neueste Version der OwnCloud 7 Enterprise-Serverlösung ermöglicht das Synchronisieren, Teilen und Speichern von Dateien in SharePoint, Amazon...
  4. CentOS VM boot verändern und Netzwerksettings von Share laden

    CentOS VM boot verändern und Netzwerksettings von Share laden: Hallo Zusammen, ich habe vielleicht ein Problem der besonderen Art. Ausgangssituation: Um für den Rollout(1000Systeme) eine CentOS (6.5) VM auf...
  5. Universitätsnetz »Sync & Share NRW« geht mit ownCloud an den Start

    Universitätsnetz »Sync & Share NRW« geht mit ownCloud an den Start: Das hochschulübergreifende Cloud-Projekt, das derzeit 18 Hochschulen in Nordrhein-Westfalen umfasst, soll ab dem Wintersemester 2014/15 eine halbe...