joe2017 hat geschrieben: 24.03.2019 19:02:12
Ich hab das Problem, dass ich meine Benutzer über Ihre NFS Quota informieren möchte. Hierzu habe ich ein Script geschrieben welches die zur Verfügung stehende Quota mit dem aktuell verwendeten Speicher abgleicht. Dieses Script muss natürlich unter dem aktuell angemeldeten User in regelmäßigen Abständen ausgeführt werden.
Deine Benutzer melden sich an einem Clientrechner an, der von einem NFS-Server Massenspeicher mountet, der mit Quota limitiert ist.
Nur der Server weiß, wieviel Platz ein bestimmter Benutzer belegt hat und wieviel er noch zu Verfügung hat. Also muß das Skript auch auf dem Server laufen.
Der Server hat aber absolut keine Ahnung davon, daß sich ein Benutzer an einem Client angemeldet hat. Der Client teilt das dem Server auch nie mit. Selbst das Mounten des Massenspeichers ist letzlich zustandslos und nicht an einen bestimmten Benutzer gebunden.
Nur der Client weiß, wann sich welcher Benutzer eingelogt hat. Ein auf dem Client laufendes Skript, wie auch immer mehr oder weniger regel,ässig gestartet, bringt dir aber keine Informationen darüber, was auf dem Server abgeht.
Deine ausgeklügelte Vorgehensweise wird so also nicht funktionieren können.
Ich halte es auch für bedenklich, deine Benutzer regelmässig damit zu nerven, ihnen mitzuteilen, wieviel Platz ihnen noch auf dem Server zur Verfügung steht.
Der Server hat bereits Mechanismen, der eine Aktion auslöst, wenn ein Benutzer einen bestimmten Grenzwert erreicht, z.B. wenn 80% seines Quota erreicht sind. Dann schickt er völlig selbstständig eine Email an Benutzer und an root. Damit läßt man die Benutzer zwar gewissenmassen ins "offene Messer" laufen. Das ganze wird aber dadurch abgemildert, daß man die Benachrichtigung nicht erst abschickt, wenn es zu spät ist, sondern bei erreichen des Softlimits. Der Benutzer kann dann zumindest seine aktuelle Arbeit noch speichern, muß aber sofort danach aufräumen.
Eine regelmässige Benachrichtigung ist also einierseits gar nicht nötig und ggfls. sogar für alle die nervend, die nie ans Limit kommen. Zum anderen ist es gar nicht möglich, den Loginvorgang am Client dem Server mitzuteilen, so daß dieser dann irgendwelche Aktionen ausführt. (OK, es ist nicht ganz unmöglich, aber technisch aufwendig, da über das Netzwerk kommuniziert werden muß, wer was macht, ohne daß es dafür Standardtools gäbe).