Disk quota
Inhoud3. Quota tools 4. Setup 5. Disk quotas instellen 6. De E-mail aanpassen 7. De e-mail waarschuwingen automatiseren 9. Overzicht van de programma functies 1. Wat zijn disk quotas?Disk quotas zijn een mechanisme om het schijfgebruik van gebruikers te beperken. Limieten kunnen voor specifieke gebruikers en groepen worden gezet. Waarschuwingen als de quota limiet is bereikt, kunnen per e-mail worden verzonden. 2. Disk Quotas activerenVoordat je de quotas activeerd, moet je eerst controleren of QUOTA-SUPPORT aan staat in je kernel configuratie. 3. Quota toolsDe quota tools worden gebruikt voor het opzetten en onderhouden van de disk quotas. Onder de quota tools bevinden zich warnquota, setquota, edquota, quota, quotacheck, quotaon, quotastats en repquota. In mijn geval werkte de e-mail notificatie niet goed na het installeren van de quota tools van de SuSE CD. Ik besloot om de nieuwste broncode (*.tar.gz) van het Internet te gebruiken. De eenvoudigste manier is om een zoekmachine voor packages te gebruiken, zoals http://www.tuxfinder.com, zoek naar "Quota". Een ander voordeel van versie 2.00 van de quota tools is dat de configuratie van de e-mail waarschuwingen via het configuratie bestand /etc/warnquota.conf verloopt. 3.1. Quota tools installerenIn de eerste instantie kun je het beste de quota tools installeren van de SuSE CD-ROM. Verder zijn de pakketten ext2fs_d en gettext nodig, evenals een Mail Transfer Agent (bijv. Sendmail). 3.2. Nieuwe quota tools compilerenPak het archief uit met het commando tar -xvfl <tarball-name>. Ik zal de compileer opties achterwege laten omdat die voor mij niet werkten. In de volgende lijst kun je zien waar de individuele tools naartoe moeten worden gekopieerd:
De manual-pages worden naar de specifieke directories in /usr/share/man gekopieerd. 4. SetupDisk quotas kunnen alleen geactiveerd worden voor volledige partities. Daarom raad ik aan om een aparte partitie te maken voor /home en de diskquota ondersteuning voor deze partitie te activeren. Door grpquota en/of usrquota toe te voegen aan /etc/fstab, wordt de diskquota geactiveerd voor de specifieke partitie. Zie verderop voor een voorbeeld. Om de quota service te starten bij het opstarten van je machine, zet je de START_QUOTA entry in je /etc/rc.config op YES. Nu is het tijd om je systeem te herstarten met de aangepaste kernel. Ten slotte, om de quota.* bestanden in te richten, gebruik je het quotacheck commando. Als er alleen user quotas nodig zijn, gebruik je quotacheck -u -a, bij alleen groep quotas gebruik je quotacheck -g -a en voor beide soorten gebruik je quotacheck -g -u -a. De -a optie activeerd automatisch alle disk quotas voor alle "quoted" partities op je systeem. 4.1. fstab zonder disk quota support
4.2. fstab met disk quota support
5. Diskquotas instellenDiskquotas stel je in met de edquota tool. Deze tool start de editor die is ingesteld in de $EDITOR variabele en laat een invoer masker zien ($EDITOR is een omgevingsvariabele in je shell). Quotas worden gedefinieerd met een "zachte" limiet (er wordt een e-mail verstuurd bij het overschrijden) en een "harde" limiet (absolute limiet, voorbij dit punt is schrijven niet meer mogelijk). In mijn voorbeelden beperk ik mij tot het limiteren van schijfruimte in kilobytes in plaats van aantallen inodes. 5.1. User quotasOm het schijfgebruik voor een specifieke gebruiker te beperken, gebruik je edquota -u <gebruiker>. Hiermee stel je alleen de "zachte" limiet (waarschuwing per e-mail) in. Voor mijn login staat deze limiet op 51200 kilobytes (50 MB). De harde limiet staat op 1102400 kilobytes (100 MB). Na het bereiken van 100 MB gebruikte ruimte, kan de gebruiker geen schrijf bewerkingen meer uitvoeren. 5.2. Group quotasVoor het opzeten van groep quotas gebruik je edquota -g <groepnaam>. De configuratie zelf werkt zoals beschreven in 5.1. 5.3. Ban-tijdHoe lang schrijfoperaties worden geblokkeerd als de quota is overschreden, stel je in met edquota -t. Periodes voor gebruikers stel je in met edquota -u -t <periode>, voor groepen gebruik je edquota -g -t <periode>. Deze periode geldt voor alle partities, gebruikers en groepen waarvooer de quotas zijn ingesteld. Als er geen periode wordt opgegeven, wordt de default waarde uit /linux/quota.h gebruikt (7 dagen). Mogelijke eenheden zijn sec[onden], min[uten], hour (uren), day (dagen), week(en), of month (maanden). 6. De E-mail aanpassenDeze stap is IMHO nodig omdat de originele tekst mogelijk niet begrepen wordt door sommige gebruikers. Deze e-mail wordt verstuurd door warnquoat als de limiet is overschreden. 6.1 De configuratie bestanden aanpassenIn het bestand warnquota.conf kunnen de volgende entries worden aangepast:
Pas dit bestand aan naar je eigen wensen. Het bestand warnquota.conf zou er ongeveer zo uit moeten zien:
6.2. De broncode aanpassenHelaas kun je de tekst van de e-mail alleen aanpassen door de broncode zelf te bewerken. Met behulp van de handige commentaren in de code zou het niet zo heel erg moeilijk moeten zijn (zelfs voor "niet-programmeurs"!). Er zou in ieder geval na iedere 80 karakters een nieuwe regel (newline) moeten volgen, om zo de mail een beetje leesbaar te houden op verschillende systemen. Hiervoor voeg je "\n" in, dit is gelijk aan een nieuwe regel (newline). De bericht tekst kun je vinden in de sectie "DEF_MESSAGE". Een ondertekening kun je vinden in de sectie "DEF_SIGNATURE". Tussen die twee teksten wordt informatie ingevoegd over welke partitie het gaat. De parameters die zijn ingesteld in warnquota.conf kun je gebruiken via de variabele "%s". De eerste keer dat %s wordt gebruikt, wordt de waarde van "SUPPORT" gebruikt, de tweede keer wordt de waarde van "PHONE" gebruikt. Het aangepaste deel kan er als volgt uitzien:
Nu kun je het pakket compileren en installeren zoals beschreven in 3.2. 7. De e-mail waarschuwingen automatiserenHet automatiseren werkt met een cron job. Vooral bij gebruik in bedrijven is het aan te raden de quota check tijdens de lunch uit te voeren. Op die manier kunnen de gebruikers dezelfde dag nog reageren en (indien nodig) contact opnemen met de helpdesk/systeembeheerder. Tijdens de lunchtijd zijn de servers waarschijnlijk ook minder belast. Je hoeft alleen de volgende regel toe te voegen aan je /etc/crontab bestand: 0 12 * * 1-5 root /usr/sbin/warnquota Deze regel start de warnquota tool iedere maandag tot vrijdag om 12 uur 's middags als root. 8. Het resultaat
9. Overzicht van de programma functiesIn het volgende stukje zie je een overzicht van de belangrijkste programma's en hun parameters:
10. Bronnen
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
De auteur van dit artikel is Mathias Kresin.
Zijn homepage kun je vinden op http://www.kresinweb.de.
Vertaald naar het Engels door Sebastian Kappers.