Auf Server prüfen ob ein NFS-Share gemountet ist
Auf Server prüfen ob ein NFS-Share gemountet ist
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
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
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!
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.
Hi again,
danke für den Hinweis....aber
Trozdem Danke an Dich....
Weitere Tipps ?
Greetz
Marc
danke für den Hinweis....aber
genau das tut er immernoch. Irgendwo gibts anscheinend ein File wo drinsteht wer welches Share mal gemountet hat. Und dieses File bekomme ich zu gesichtcosmac 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!
Trozdem Danke an Dich....
Weitere Tipps ?
Greetz
Marc
na gut, dann ich wiederMarcM hat geschrieben:weiter gehts
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
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
}
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
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.
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
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
- Feuerfuchs
- Beiträge: 115
- Registriert: 13.05.2004 22:19:14
-
Kontaktdaten:
hmm das ist aber OT
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
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
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.
Alles, was einfach ist, ist anfangs schwierig.
Denn der Mensch hat selten gelernt,
einfach zu denken und zu handeln.
Watt, aus meiner alten Heimat ? Bis 2003 ?! hab ich in HH gewohnt....Feuerfuchs hat geschrieben:Grüße aus Baunatal
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