Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:windowsclient:anmelde-quota]] 
no way to compare when less than two revisions

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


anwenderwiki:windowsclient:anmelde-quota [2017/05/15 06:57] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +{{tag> login quota}}
  
 +====== Quota-Nutzung beim Anmelden anzeigen ======
 +
 +Damit es keine Überraschungen gibt, wenn das Home-Laufwerk plötzlich voll ist, gibt es hier eine Software,
 +die den Benutzer beim Login per Popup über seinen "Speicherverbrauch" informiert. Ursprünglich nur für Windows-Clients entwickelt, gibt es nun auch ein Version für Linux-Clients.
 +
 +Es wird immer die Serveranpassung benötigt, welche dafür sorgt, dass die Quotainformation der Nutzer in deren Verzeichnissen unter .quotadat gespeichert wird. Zusätzlich benötigt man das Clientskript auf den Clients je nach Betriebssystem für Windows oder Linux. 
 +
 +Übrigens enthalten die vom Administrator gesetzten Quota immer einen 'grace'-Anteil, den der Benutzer nur kurzfristig nutzen darf. Gibt man z.B. 5120MB vor, so entsprechen 4096MB 100% Nutzung ('limit'). Der Rest von 1024MB ist der 'grace'-Teil. 
 +===== Serveranpassung =====
 +
 +Ergänze die /etc/samba/smb.conf. Die Datei smb.conf sollte man unbedingt vor der Veränderung sichern und am besten auch nach der Veränderung, da diese durch Updates überschrieben werden könnte.
 +<code>
 +[homes]
 +...
 +...
 +...
 +# Quota-Nutzung beim Anmelden anzeigen - LMN-Wiki
 +root preexec = /usr/local/bin/quota_usr.sh %G %u %U %I %H
 +
 +</code>
 +
 +
 +
 +Erstelle die Datei /usr/local/bin/quota_usr.sh mit folgendem Inhalt:
 +
 +<code>
 +
 +#!/bin/sh
 +
 +HOMEPATH=$(/usr/sbin/smbldap-usershow $2 | /usr/bin/awk '/homeDirectory/{print $2}')
 +
 +/usr/sbin/samba-userlog --log=in --username=$3 --hostname=$4 --homedir=$5
 +
 +QUOTADAT=$HOMEPATH/.quotadat
 +DU=/usr/bin/du
 +AWK=/usr/bin/awk
 +CHMOD=/bin/chmod
 +
 +MODE=0666
 +
 +if [ $# -lt 2 ]; then
 +        echo "Parameter 'Gruppe' und/oder 'Benutzername' fehlt!"
 +        exit 0;
 +fi
 +
 +echo "Speicherverbrauch im Home-Laufwerk von $2" > $QUOTADAT
 +quota -lwvu $2| $AWK '/home/{print "Speicherverbrauch insgesamt: " int($2/1024) " MByte\nErlaubter Speicherverbrauch: " int($3/1024)" MByte"}' >> $QUOTADAT
 +
 +$CHMOD $MODE $QUOTADAT
 +</code>
 +
 +P.S: Um die Quota eines Benutzers am Server einzusehen, kann man auf dem Server diesen Befehl absetzen:
 +
 +<code>
 +quota -lwvu benutzername
 +</code>
 +
 +
 +===== Linux-Clients ( mit zenity-Paket z.B. XFCE-Desktop ) =====
 +
 +Das Paket **wmctrl** muss installiert werden:
 +<code>
 +sudo apt-get install wmctrl
 +</code>
 +
 +
 +
 +Das Linux-Clientskript speichert man unter **/usr/bin/quota_openml**.
 +Es gibt mehrere Varianten:
 +
 +1. Variante von Arnaud mit Anzeige bei jedem Quota-Stand:
 +<code>
 +#! /bin/bash
 +
 +datei="$HOME/Home_auf_Server/.quotadat"
 +
 +used=$(grep insgesamt $datei | cut -d" " -f3)
 +quota=$(grep Erlaubter $datei | cut -d" " -f3)
 +
 +percent=$(/usr/bin/python3 -c "print(round($used*100/$quota))")
 +
 +if [[ "$percent" -le 51 ]] ; then
 +        color="green"
 +        text=""
 +elif [[ "$percent" -le 76 ]] ; then
 +        color="orange"
 +        text=""
 +else
 +        color="red"
 +        text="Das Benutzerkonto ist voll, es können Probleme beim Speichern \n\nvon Dateien auftreten und verschiedene Programme funktionieren nur eingeschränkt."
 +fi
 +
 +(sleep 2 && /usr/bin/wmctrl -F -a "Speichernutzung" -b add,above) & (/usr/bin/zenity --timeout 20 --title "Speichernutzung" --info --text "`cat $datei` \n\n\n <span color=\"$color\"><b><u>Verwendet : $percent %</u></b></span> \n\n\n <span color=\"$color\"><b>$text</b></span>")
 +
 +</code>
 +
 +
 +2. Variante von Stefan mit Anzeige nur bei Quota-Stand ab 80%:
 +<code>
 +#! /bin/bash
 +
 +datei="$HOME/Home_auf_Server/.quotadat"
 +
 +used=$(grep insgesamt $datei | cut -d" " -f3)
 +quota=$(grep Erlaubter $datei | cut -d" " -f3)
 +
 +percent=$(/usr/bin/python3 -c "print(round($used*100/$quota))")
 +
 +if [[ "$percent" -le 80 ]] ; then
 +        exit
 +elif [[ "$percent" -le 100 ]] ; then
 +        color=#FF5200
 +        text="\nIhr Speicherplatz ist fast voll ! \n\nLöschen Sie Ihre nicht benötigten Dateien im \n\nHome-Verzeichnis, den Tausch- und Projektordnern, \n\nsonst wird es zu Problemen beim Speichern und \n\nbeim Ausführen von Programmen (z.B. Internetbrowser) kommen. \n\nIhre Speichernutzung sehen Sie in der SCHULKONSOLE."
 +else
 +        color=#FF0015
 +        text="\nIhr Speicherplatz ist voll !!! \n\nLöschen Sie UMGEHEND Ihre nicht benötigten Dateien im \n\nHome-Verzeichnis, den Tausch- und Projektordnern, \n\nsonst wird es zu Problemen beim Speichern und \n\nbeim Ausführen von Programmen (z.B. Internetbrowser) kommen. \n\nIhre Speichernutzung sehen Sie in der SCHULKONSOLE."
 +fi
 +
 +(sleep 2 && /usr/bin/wmctrl -F -a "Speichernutzung" -b add,above) & (/usr/bin/zenity --title "Speichernutzung" --warning --text "`cat $datei` \n\n\n <span color=\"$color\"><b><u>Verwendet : $percent %</u></b></span> \n\n\n<span color=\"$color\"><b>$text</b></span>")
 +
 +exit
 +
 +</code>
 +
 +Damit das Skript automatisch nach der Anmeldung aufgerufen wird, erzeugt man die Datei **/home/linuxadmin/.config/autostart/quota.desktop** mit folgendem Inhalt:
 +
 +<code>
 +[Desktop Entry]
 +Encoding=UTF-8
 +Version=0.9.4
 +Type=Application
 +Name=TestQuota
 +Comment=Quota
 +Exec=/usr/bin/quota_openml
 +StartupNotify=false
 +Terminal=false
 +Hidden=false
 +
 +</code>
 +
 +===== Windows-Clients =====
 +
 +Für Windows-Clients muss in die login.bat/anmelde.bat eine neue Schlusszeile eingefügt werden:
 +
 +<code>
 +wscript \\server\netlogon\quota.vbs
 +</code>
 +
 +
 +
 +Inhalt von quota.vbs (Anzupassen ist das Homelaufwerk H:)
 +<code>
 +'Zeitdauer wie lange das Popupfenster angezeigt werden soll
 +Time_Out = 20
 +'Name der Datei die angezeigt werden soll
 +Dateiname = "H:\.quotadat"
 +'Titel des Popupfensters
 +Popup_Titel = "Speicherplatz"
 +
 +Dim objFSO
 +Dim objWScript
 +Dim objFile
 +
 +Set objWScript = CreateObject("WScript.Shell")
 +Set objFSO = CreateObject("Scripting.FileSystemObject")
 +
 +If objFSO.FileExists(Dateiname) = True then
 +    Set objFile = objFSO.OpenTextFile(Dateiname)
 +
 +    objWScript.Popup objFile.ReadAll, Time_Out, Popup_Titel,64
 +
 +    objFile.Close
 + End if
 +
 +Set objFile = Nothing
 +Set objWScript = Nothing
 +Set objFSO = Nothing
 +</code>
 [[anwenderwiki:windowsclient:anmelde-quota]] anwenderwiki/windowsclient/anmelde-quota.txt · Zuletzt geändert: 2017/05/15 06:57 von 127.0.0.1