Auf Server prüfen ob ein NFS-Share gemountet ist

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
MarcM
Beiträge: 379
Registriert: 19.06.2004 16:28:22
Wohnort: Kassel

Auf Server prüfen ob ein NFS-Share gemountet ist

Beitrag von MarcM » 07.02.2006 17:47:19

Hi,

ich suche nach einem Tool/Befehl mit dem ich auf dem NFS-Server feststellen kann ob ein NFS-Share gemountet ist. Das ganze soll in ein Script, welches beim betätigen des Ausschalters gestartet wird.

Bisher hab ich per Ping überprüft ob die Clienten da sind. Jetzt würde ich das aber gerne Abhängig vom "Mount-Status" machen.

Sprich
- Prüfe ob ein Client ein NFS-Share gemountet hat.
- wenn nicht, Script zu Ende, Server fährt runter
- wenn doch, Script für ne Weile schlafen legen und erneut prüfen

Weiß da jemand was ?

Greetz
Marc

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 07.02.2006 18:21:30

hi,

showmount
zeigt eine Liste der Clients an. Mit -a oder -d gibt's mehr Info,
aber die braucht man wohl nicht.

showmount | grep 'clientname'
liefert 0 wenn der bestimmte Client was gemountet hat, sonst 1.

Aber: der uralte "Universal NFS Server 2.2beta38" mit Kernel 2.2.5
zeigt bei mir auch noch Clients an, die schon seit 2 Jahren nicht
mehr in Betrieb sind. Hoffentlich ist das besser geworden!
Beware of programmers who carry screwdrivers.

MarcM
Beiträge: 379
Registriert: 19.06.2004 16:28:22
Wohnort: Kassel

Beitrag von MarcM » 07.02.2006 18:33:11

Hi again,

danke für den Hinweis....aber
cosmac hat geschrieben:Aber: der uralte "Universal NFS Server 2.2beta38" mit Kernel 2.2.5
zeigt bei mir auch noch Clients an, die schon seit 2 Jahren nicht
mehr in Betrieb sind. Hoffentlich ist das besser geworden!
genau das tut er immernoch. Irgendwo gibts anscheinend ein File wo drinsteht wer welches Share mal gemountet hat. Und dieses File bekomme ich zu gesicht :(

Trozdem Danke an Dich....

Weitere Tipps ?

Greetz
Marc

ding280
Beiträge: 324
Registriert: 15.04.2005 18:31:18

Beitrag von ding280 » 07.02.2006 18:59:32

Hallo,

es gibt die /etc/mtab, in dieser Datei steht alles, was aktuell gemountet ist, im gleichen Format wie die /etc/fstab

Gruß Tom

MarcM
Beiträge: 379
Registriert: 19.06.2004 16:28:22
Wohnort: Kassel

Beitrag von MarcM » 07.02.2006 19:12:48

Hi..

das würde da drin stehen wenn ich vom Server aus ein Share mounte. Aber wenn ein Client ein Share gemountet hat steht das da nicht drin....

Danke trotzdem..

weiter gehts :D

Greetz
Marc

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 07.02.2006 20:19:05

MarcM hat geschrieben:weiter gehts :D
na gut, dann ich wieder :)

Der NFS-Server _kann_ nicht wissen, ob ein Client noch was gemountet hat.
Er kann hoechstens sowas sagen: "vor kurzem hat der Client noch gelesen".
Also muss der Client direkt befragt werden. Dazu koennte man z.B. auf dem
Client ein Mini-Script "/usr/local/sbin/nfsspy" haben:

Code: Alles auswählen

#!/bin/sh
grep mulle /etc/mtab
Das wird beim "xinetd" angemeldet, indem man ein File "/etc/xinet.d/nfsspy" anlegt:

Code: Alles auswählen

service nfsspy
{
        type        = UNLISTED
        port        = 17989
        per_source  = 1
        socket_type = stream
        protocol    = tcp
        wait        = no
        user        = nobody
        server      = /usr/local/sbin/nfsspy
}
und "/etc/init.d/xinetd reload" sagt.

Auf dem Server kann dann ein Script den Client abfragen:

Code: Alles auswählen

#!/bin/bash
while {
   CLIENT1=`netcat -w 1 velvet 17989`
   CLIENT2=`netcat -w 1 ulysses 17989`
   [ "$CLIENT1" ] || [ "$CLIENT2" ]
} ; do {
   sleep 300
} ; done
shutdown now
und 5 Minuten nachdem der letzte Client sich abgemeldet hat, runterfahren
oder was anderes sinnvolles machen.

Zeichenerklaerung:
- nfsspy ist irgendein Name
- 17989 ist irgendein freier Port
- mulle ist mein Server
- ulysses und velvet sind meine 2 Clients
Beware of programmers who carry screwdrivers.

MarcM
Beiträge: 379
Registriert: 19.06.2004 16:28:22
Wohnort: Kassel

Beitrag von MarcM » 07.02.2006 21:03:33

Hi again...

Danke für deine Mühe........aber..... :)

Die Clients sind 2'er Dboxen mit Linux (PPC CPU). Das Script kriege ich ja gerade noch hin, grep ist in der busybox mit drin, aber mit dem xinetd oder der nicht existierendne /etc/mtab hörts schon auf....die dboxen haben doch nur nen 8MB Flash.....

Nee, sollte schon auf dem Server ablaufen. Jetzt mal ehrlich...es kann doch nicht sein, dass jeder nen Share auf dem Server mounten kann und dieser davon nix mitkriegt....

Ok, ich mach das anders......mir ist gerade was eingefallen......

die Clients mounten die Shares und dabei "touche" ich im Share an eine definierte Stelle nen File. Beim unmounten lösche ich es wieder......

Das Ausschalt-Script braucht nur auf das getouchte File zu prüfen....Fertig isses....

Wenn sonst noch wer Vorschläge hat......immer her damit....

Greetz
Marc

Benutzeravatar
Feuerfuchs
Beiträge: 115
Registriert: 13.05.2004 22:19:14
Kontaktdaten:

Beitrag von Feuerfuchs » 11.02.2006 06:29:05

hmm das ist aber OT :P

Ich meine gelesen zu haben das im aktuellen CVS von tuxbox automount eigebaut wurde

Ich finde die sache mit dem ping übrigens weitaus eleganter als das "rumgetouche"

Grüße aus Baunatal :D
Alles, was erfolgreich ist, ist einfach
Alles, was einfach ist, ist anfangs schwierig.
Denn der Mensch hat selten gelernt,

einfach zu denken und zu handeln.

MarcM
Beiträge: 379
Registriert: 19.06.2004 16:28:22
Wohnort: Kassel

Beitrag von MarcM » 11.02.2006 16:27:35

Feuerfuchs hat geschrieben:Grüße aus Baunatal :D
Watt, aus meiner alten Heimat ? :P Bis 2003 ?! hab ich in HH gewohnt....

klar ist das Ping eleganter.....aber im Prinzip das Selbe....

- ping dbox
- errorlevel von ping abfragen
- wenn 0 dbox an, nix tun
- anderenfalls dbox aus, server runterfahren

und jetzt halt
- test -e /getouchtes/file
- errorlevel von test abfragen
- wenn 0 dbox hat gemountet, nix tun
- anderenfalls dbox hat nicht gemountet, server runterfahren

Im ersten Falle bleibt der Server eben so lange an wie die Dbox. (+ Schleifenzeit). Das muß nicht sein.....so bleibt er nur an wenn ich nen Film vom oder zum Server streamen will.....

Das mit dem automount hab ich gelesen....aber ich handhabe das Mounten immer noch per Script-Plugin, also nur bei Bedarf....außerdem kann ich so bei nem Imagewechsel jederzeit einfach schnell wieder mounten ohne erst alles wieder in die Neutrino Konfiguration einzutragen....

Greetz
Marc

Antworten