[gelöst] NFS Server und QUOTA für Ordner

Probleme mit Samba, NFS, FTP und Co.
Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: NFS Server und QUOTA für Ordner

Beitrag von joe2017 » 19.03.2019 15:28:14

Da gebe ich euch vollkommen Recht! Dasw Problem liegt in diesem Fall wie so oft bei dem Benutzern. Aber Ihr kennt sicherlich das Problem mit Anwendern... Meldung erschein... Keine Zeit, Mir egal, Was auch immer... Klick und weg. Das ist leider so.

Ich habe auch schon befürchtet, dass ich diese Antwort von euch erhalte. Aber ich hab einfach noch gehofft das es eine ander Möglichkeit gibt.

Dann bleibt mir eigentlich nur das Softlimit und die Benachrichtigung. Hat jemand einen Ansatz für mich wie ich das lösen kann? Wie kann ich den Benutzer über das Überschreiten seines Soft Limits informieren?

Benutzeravatar
MSfree
Beiträge: 10752
Registriert: 25.09.2007 19:59:30

Re: NFS Server und QUOTA für Ordner

Beitrag von MSfree » 19.03.2019 15:52:53

joe2017 hat geschrieben: ↑ zum Beitrag ↑
19.03.2019 15:28:14
Wie kann ich den Benutzer über das Überschreiten seines Soft Limits informieren?
Üblicherweise macht man das via Email und informiert Admin und Benutzer über die Überschreitung. Alles andere wird schwierig, wenn z.B. Benutzer den Massenspeicher in ihre Windowskisten mounten.

Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: NFS Server und QUOTA für Ordner

Beitrag von joe2017 » 19.03.2019 17:11:09

Ich hatte mir vor ein paar Wochen auch schon mal warnquota angesehen. Jedoch werde ich nicht ganz schlau aus dem Ganzen.

Ich hatte bereits die Datei /etc/warnquota.conf angepasst.
Jedoch wo konfiguriere ich den zu verwendenden Mailserver?
Und woher hat warnquota die Zuordnung zu Benutzer und E-Mail Adresse?

Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: NFS Server und QUOTA für Ordner

Beitrag von joe2017 » 21.03.2019 10:41:32

Zusätzlich habe ich jetzt noch sendmail installiert.
Ich benötige jedoch keinen vollwertigen Mailserver, sondern möchte lediglich system Mails versenden. Hierzu gibt es ja mehrere Ansätze.

Ich habe folgendes ausgeführt und wollte einen ersten Test machen.
sudo apt install sendmail
sudo sendmailconfig
sudo echo "Subject: sendmail test" | /usr/sbin/sendmail -v userXXX@gmx.de


Hier erhalte ich jedoch folgende Fehlermeldung:

Code: Alles auswählen

050 250 2.1.0 Sender ok
050 >>> RCPT To:<userXXX@gmx.de>
050 >>> DATA
050 550 5.7.1 The IP address x.x.x.x has been identified as not meeting PBL's policy for IP addresses permitted to deliver unauthenticated 'direct-to-mx' email
050 554 5.5.0 No valid recipients have been specified
Hat jemand eine Idee was ich vergessen oder nicht konfiguriert habe?

mludwig
Beiträge: 794
Registriert: 30.01.2005 19:35:04

Re: NFS Server und QUOTA für Ordner

Beitrag von mludwig » 21.03.2019 11:35:19

sendmail halte ich für vielleicht etwas überdimensioniert für diesen Job. Als ich vor einem ähnlich gelagerten Problem stand (Webserver mit unterschiedlichen Websites, jeweils mit Kontaktformularen die Mails versenden sollen), habe ich mich für ssmtp entschieden. Gibt es als Debianpaket, und die Einrichtung ist relativ simple, z. B. nach dieser Anleitung:
https://decatec.de/home-server/linux-ei ... mit-ssmtp/

Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: NFS Server und QUOTA für Ordner

Beitrag von joe2017 » 21.03.2019 12:17:11

Danke für den Tipp. Das hatte ich während meiner Recherche ebenfalls gefunden.
Ich hab jedoch ein ganz anderes Problem. Mir ist gerade eingefallen, dass nicht jeder meiner Anwender über eine E-Mail verfügt.

Ich habe mir jetzt überlegt, dass man dies mit notify-send lösen könnte.
Der NFS-Server müsste die Quota für die User Profiles überprüfen und sobald das Soft Limit überschritten wird dem Benutzer eine Info geben.
Nachdem dies nicht direkt über das Netzwerk geht, dachte ich, dass der Server z.B. eine Datei (QuotaSoftLimit) in dem jeweiligen User Profile ablegt und der Client mittels Cronjob eine Info ausgibt sobald diese Datei vorhanden ist.

Das hört sich jetzt furchtbar kompliziert an. Sollte es aber eigentlich nicht sein.
Oder hat jemand eine andere Idee wie ich das lösen könnte?

Oder kann ich evtl mit meinem Client die aktuelle Quota abfragen? Meines Wissens geht das nicht.

Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: NFS Server und QUOTA für Ordner

Beitrag von joe2017 » 21.03.2019 12:50:24

Wenn ich jetzt z.B. an meinem Client folgendes ausführe, wird mir nur der gesamte zur Verfügung stehende Speicher meines NFS Servers angezeigt.
df -h /home/users/USER/

Code: Alles auswählen

NFS-Server/path/home/users/		25GB	374MB	23GB	2%	/home/users
Der Client erkennt somit gar nicht, dass Ihm nur noch Bsp. 100MB zur Verfügung stehen. Das wird wahrscheinlich nur auf dem Server geregelt.
Aber vielleicht geht die Abfrage am Client ja dennoch irgendwie. Hat jemand eine Idee oder weiß das?

Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: NFS Server und QUOTA für Ordner

Beitrag von joe2017 » 22.03.2019 11:46:11

Hallo zusammen,

ich wollte euch nur mal mein Script für die Quota Benachrichtigung posten.

Als erstes müsste ein Cronjob auf dem NFS-Server laufen. Da an den Quotas ehr selten Anpassung vorgenommen werden, sollte das einmal am Tag ausreichen.
Das Script hierfür hab ich noch nicht fertig. Aber folgende Zeile müsste für jeden User ausgeführt werden.

Code: Alles auswählen

sudo quota USER > /path/home/users/USER/quota
Anschließend hab ich folgendes auf meinem Client als Cronjob laufen.

Eine kurze Erklärung was ich mache.
  • Vom NFS Server wurde die Qutoa Information auf dem Homelaufwerk des Users gespeichert (~/quota)
  • Ich prüfe ob mein verwendeter Speicher kleiner als 2000 Bytes (HardLimit Info), oder größer als mein Soft Limit (SoftLimit Info) ist.
  • Ich prüfe ob die Datei ~/quota-date vorhanden ist. Diese verwende ich um die Benachrichtigung nach einer gewissen Zeit erneut anzuzeigen.

Code: Alles auswählen

#!/bin/bash

array=($(sed -n '3p;4p' ~/quota))
varSoft=${array[2]}
varHard=${array[3]}
varUsed=($(du -cks ~/))
varUsed2=$(( ($varHard-${varUsed[0]}) ))


# Hard Limit Information
if [ $varUsed2 -le 2000 ]; then 
  if [ \! -e ~/quota-date ]; then
    notify-send --urgency=critical "Notification  -  CRITICAL" "NFS-Server - Quota Hard Limit erreicht\\n\\nSie haben soeben Ihre zulässige Speichergröße erreicht.\\nBitte löschen Sie umgehend nicht benötigete Daten in Ihrem Benutzerprofil und leeren Sie Ihren Papierkorb. Andernfalls hat dies zu Folge, dass Sie sich nicht mehr anmelden können."
    vardate1=$(date +%s)
    echo $vardate1 > ~/quota-date
  else
    vardate1=$(cat ~/quota-date)
    vardate2=$(date +%s)
    vardate3=$(( ($vardate2-$vardate1) ))
    if [ $vardate3 -ge 600 ]; then 
      notify-send --urgency=critical "Notification  -  CRITICAL" "NFS-Server - Quota Hard Limit erreicht\\n\\nSie haben soeben Ihre zulässige Speichergröße erreicht.\\nBitte löschen Sie umgehend nicht benötigete Daten in Ihrem Benutzerprofil und leeren Sie Ihren Papierkorb. Andernfalls hat dies zu Folge, dass Sie sich nicht mehr anmelden können."
      vardate1=$(date +%s)
      echo $vardate1 > ~/quota-date
    fi
  fi
fi


# Soft Limit Information
if [ $varUsed -ge $varSoft ]; then 
  if [ \! -e ~/quota-date ]; then
    notify-send --urgency=critical "Notification  -  WARNING" "NFS-Server - Quota Soft Limit überschritten\\n\\nSie erreichen in Kürze Ihre zulässige Speichergröße.\\nBitte löschen Sie nicht benötigete Daten in Ihrem Benutzerprofil. Sollten Sie das Hard Limit erreichen, kann dies zu Folge haben, dass Sie sich nicht mehr anmelden können."
    vardate1=$(date +%s)
    echo $vardate1 > ~/quota-date
  else
    vardate1=$(cat ~/quota-date)
    vardate2=$(date +%s)
    vardate3=$(( ($vardate2-$vardate1) ))
    if [ $vardate3 -ge 3600 ]; then 
      notify-send --urgency=critical "Notification  -  WARNING" "NFS-Server - Quota Soft Limit überschritten\\n\\nSie erreichen in Kürze Ihre zulässige Speichergröße.\\nBitte löschen Sie nicht benötigete Daten in Ihrem Benutzerprofil. Sollten Sie das Hard Limit erreichen, kann dies zu Folge haben, dass Sie sich nicht mehr anmelden können."
      vardate1=$(date +%s)
      echo $vardate1 > ~/quota-date
    fi
  fi
fi
Ich hoffe ich kann damit jemandem behilflich sein.
Sollte es eine ander Möglichkeit geben wäre ich natürlich dankbar.

Benutzeravatar
joe2017
Beiträge: 1136
Registriert: 07.08.2017 14:29:51

Re: [gelöst] NFS Server und QUOTA für Ordner

Beitrag von joe2017 » 25.03.2019 16:40:02

Ich habe das Ganze noch etwas anders gelöst bzw angepasst.

Auf meinem NFS Server lege ich meine Quotas für die Benutzer sowieso mit einem Script an. In diesem Zuge, erstelle ich zwei versteckte Files (.QuotaHardLimit, .QuotaSoftLimit) mit den entsprechenden Quotas in dem jeweiligen Verzeichnis (/path/home/users/$USER/).

Anschließend prüfe ich auf dem Client den verwendeten Speicher und vergleiche diesen mit dem Inhalt der beiden Files. Somit kann ich mit notify-send die entsprechende Meldung für Hard oder Soft Limit ausgeben.
Dieses Script wird als Timer mittels Service aus dem Verzeichnis /etc/systemd/user/ alle x Minuten gestartet.

Bei Fragen poste ich gerne meinen Timer/Service und Scripts.

Antworten