1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

nfs-test möglich?

Discussion in 'Linux-Distributionen' started by Doofchen, Jun 19, 2004.

Thread Status:
Not open for further replies.
  1. Doofchen

    Doofchen Kbyte

    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

    #!/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

    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

    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

    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

    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

    ja, das kann man. - allerdings nur mit dem verhältnismäßig neuen 2.6.7 Kernel, oder mit einem gepatchten alten...

    MfG; bitumen
     
Thread Status:
Not open for further replies.

Share This Page