nfs-test möglich?

Dieses Thema im Forum "Linux-Distributionen" wurde erstellt von Doofchen, 19. Juni 2004.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Doofchen

    Doofchen Kbyte

    Registriert seit:
    30. August 2003
    Beiträge:
    277
    Hallo Zusammen,

    ist es möglich aus einem Skript heraus zu testen (auch indirekt) ob der nfs-daemon läuft oder nicht - und zwar auf dem 'Skript-Rechner' und auf der Netz-Gegenseite?

    Wie wird Solches bewerkstelligt?

    Für Eure Mühe besten Dank im voraus,

    MfG Doofchen
     
  2. bitumen

    bitumen Megabyte

    Registriert seit:
    4. Juni 2002
    Beiträge:
    1.952
    #!/bin/bash
    # check local machine
    if [ ps ax | grep nfsd ]
    then
    echo "nfs server is running"
    else
    echo "nfs server is stopped"
    fi

    #!/bin/bash
    # check remote machine
    ip="192.168.0.1"
    if [ nmap -p '111' $ip | grep open ]
    then
    echo "remote nfs server running"
    else
    echo "remote nfs server stopped"
    fi

    mfg, bitumen
     
  3. Doofchen

    Doofchen Kbyte

    Registriert seit:
    30. August 2003
    Beiträge:
    277
    Hallo @bitumen,

    vielen Dank für den Tipp.

    Meine bash nahm zwar die Einklammerung der Abfrage krumm, ich konnte dies aber geradebiegen.
    Nun kann ich den lokalen Zustand von nfs sicher bestimmen.

    Die Abfrage des IP-Ports bringt nach dem ersten Aufruf von nfs auf dem remote-Rechner immer das Ergebnis open, auch wenn der remote-nfs-daemon zwischendurch heruntergefahren wurde (bei immer noch laufendem Rechner).
    Dieser Part scheint also nur für die erst- und einmalige Erkennung einer nfs-Verbindung geeignet zu sein.

    Interessant war für mich als Linux-Newbie zu sehen, wie ein Profi solche Abfragen bewerkstelligt!
    Auch das Manual von nmap habe ich versucht zu studieren (leider englisch) aber die Optionen erschlagen einen ja schier.

    Gibt es möglicherweise noch einen anderen Weg den Zustand des remote-nfs-daemon zu bestimmen?

    Ihnen nochmals vielen Dank und schöne Grüße

    Doofchen

     
  4. bitumen

    bitumen Megabyte

    Registriert seit:
    4. Juni 2002
    Beiträge:
    1.952
    Nein. Tatsache ist, dass dieser Teil des Codes ein bisschen tricky ist. Es wird nicht der nfs-server untersucht, sondern der rpc-port. wenn der rpc port zu ist, kann nfs nicht funktionieren, umgekehrt kann jedoch nicht sichergestellt werden, ob nfsd wirklich läuft. Du hast 2 Möglichkeiten, um zum gewünschten ergebnis zu kommen:

    ad1: die nfs-freigabe mounten, falls der rückgabewert 0 ist, ist der nfs-server aktiv. dies kannst du jedoch nur machen, wenn auf der lokalen maschiene auch nfsd aktiv ist.

    ad2: du loggst dich via ssh auf dem remote-rechner ein, und gibst dort "ps ax | grep nfsd" ein. Falls der Rückgabe wert 0 ist, hast du es wieder mit einem laufenden nfs-server zu tun. ein möglicher code könnte so aussehen:

    #!/bin/bash
    # check remote nfsd
    benutzer="root"
    ip="192.168.0.1"
    if [ ssh -l $benutzer $ip "ps ax | grep nfsd" ]
    then
    echo "remote nfs server running"
    else
    echo "remote nfs server stopped"
    fi

    Um diese Methode nutzen zu können, darf jedoch das anmelden über ssh keine passwortabfrage erforden. Dazu loggst du dich mit dem user ein, der das script später startet. Mit "ssh-keygen -t rsa" generierst du einen neuen Schlüssel. (einfach 3mal enter drücken, _kein_ passwort angeben) Danach kopierst du die ~/.ssh/id_rsa.pub von der lokalen maschiene nach ~/.ssh/authorized_keys2 auf der remote-maschine. Nach dem du dich einmal interaktiv eingeloggt hast, kannst du dich jetzt auch bequem via "ssh -l meinbenutzername zielhost" ohne Passwortabfrage einloggen, was du folglich im script verwenden kannst. Natürlich muss auf dem remote-rechner sshd laufen, ein account mit shell-zugriff ist ebenfalls erforderlich.

    MfG, bitumen

    kurzer Nachtrag: Das Einloggen ohne Passwortabfrage stellt ein großes Sicherheitsrisiko dar. Falls jemand deinen Rechner knackt, hat er auch auf den remote-rechner Zugriff. Deshalb empfielt es sich, einen eigenen user für solche "scriptzwecke" zu erstellen.
     
  5. Doofchen

    Doofchen Kbyte

    Registriert seit:
    30. August 2003
    Beiträge:
    277
    Hallo @bitumen

    ich werde das Posting mal in Ruhe durchgehen und den Vorschlag ausprobieren.

    Auf meine zwei Rechner hat niemand sonst Zugriff, also kann ich es auch ohne Passwort machen - dennoch bleibt der Tipp für den anderen Fall abgeheftet.

    Ich selbst habe nun ein bisschen experimentiert und eine eigene 'Lösung' gefunden:

    rpcinfo -p $MEINSERVER | cat > dummy
    if grep nfs dummy ... usw ....
    (geht leider nicht über eine weitere Pipe).

    Ich kann mir vorstellen, daß einige Profis schmunzeln werden, ob des Newbie-Versuches.

    Aber es funktioniert bis jetzt - der Pferdefuß kommt aber sicher noch?!

    Nochmals herzlichen Dank für die Mühe - schon wieder habe ich Wichtiges dazugelernt.



    Schöne Grüße Helmut
     
  6. blablah

    blablah Kbyte

    Registriert seit:
    21. Juni 2004
    Beiträge:
    174
    rpcinfo -p host
     
  7. Krawumm

    Krawumm Guest

    Da der letzte Bug im I/O-Handling bestimmt gefixt wurde, könnte man doch auch jedem User Shell-Rechte geben, oder?
     
  8. bitumen

    bitumen Megabyte

    Registriert seit:
    4. Juni 2002
    Beiträge:
    1.952
    ja, das kann man. - allerdings nur mit dem verhältnismäßig neuen 2.6.7 Kernel, oder mit einem gepatchten alten...

    MfG; bitumen
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen