In diesem Beispiel wird die Partition /dev/hdb1 mit dem Dateiystem ext2 am Mountpunkt /daten in das Dateisystem eingebunden. Für diese Partition sollen Disk Quotas für Benutzer angelegt werden. Daher muß in der /etc/fstab der Eintrag für /dev/hdb1 um die Option usrquota ergänzt werden.
/dev/hdb1 /daten ext2 defaults,usrquota 1 3
Im Wurzelverzeichnis der Partition muß nun die Verwaltungsdatei für die Disk Quotas eingesetzt werden. Bei SuSE kommt ``aquota'' zum Einsatz, daher der abweichende Name. Auf jeden Fall darf nur root die Datei lesen und schreiben.
voyager:~ # touch /daten/aquota.user voyager:~ # chmod 600 /daten/aquota.user
Nun muß die Verwaltungsdatei eingerichtet werden. Dies übernimmt das Programm quotacheck.
voyager:~ # quotacheck -avR quotacheck: WARNING - Quotafile /daten/aquota.user was probably truncated. Can't save quota settings... quotacheck: Scanning /dev/hdb1 [/daten] done quotacheck: Checked 3 directories and 1 files voyager:~ # quotacheck -avR quotacheck: Scanning /dev/hdb1 [/daten] done quotacheck: Checked 3 directories and 1 files
Jetzt ist es an der Zeit für eine Benutzer Quoten anzulegen. Dies erfolgt über den Befehl edquota, der für die Eingabe der Werte den vi benutzt.
voyager:~ # edquota -u walter
Un so sollte der Eintrag lauten, wenn der Benutzer walter eine Beschränkung von 5 MB als weiches und hartes Limit besitzen soll.
Disk quotas for user walter (uid 510): Filesystem blocks soft hard inodes soft hard /dev/hdb1 0 5120 5120 0 0 0
Nach der Einrichtung sollten die Disk Quotas auch aktiviert werden. Danach liefert repquota den derzeitigen Stand der Dinge.
voyager:~ # quotaon /daten voyager:/daten # repquota -av *** Report for user quotas on device /dev/hdb1 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 32 0 0 4 0 0 walter -- 0 5120 5120 0 0 0 Statistics: Total blocks: 7 Data blocks: 1 Entries: 2 Used average: 2,000000
Zum Testen legen wir uns eine ungefähr 2 MB große Datei an. Um die Datei zu füllen benutzen wir den Befehl dd (4.5.4), der aus dem Gerät /dev/zero Daten liest und sie in die Datei testfile schreibt. Wenn nun doe Datei dreimal rüberkopiert wird in den Verzeichnisbaumabschnitt /daten, sollten die Disk Quotas greifen.
walter@voyager:~> dd if=/dev/zero of=testfile count=2000000 bs=1 2000000+0 Records ein 2000000+0 Records aus walter@voyager:~> cp testfile /daten/test/testfile1 walter@voyager:~> cp testfile /daten/test/testfile2 walter@voyager:~> cp testfile /daten/test/testfile3 ide0(3,65): write failed, user block limit reached. cp: Schreiben von »/daten/test/testfile3«: Der zugewiesene Plattenplatz (Quota) ist überschritten
Mit den Quotas klappt das ja schon ganz gut. Allerdings sind die Quotas nach dem Neustart des Rechners nicht mehr aktiv und müssen per Hand gestartet werden. Abhilfe schafft hier eines der vielen init-Skripte. Das Skript quota startet die Quoten und boot.quota sorgt dafür, daß nach einem unsauberen Beenden des Dateisytems die Quoten überprüft werden. Der Befehl insserv sorgt dafür, daß das angegebene Skript nun auch in den im Skript angegebenen Runleveln startet.
yoyager:~ # cd /etc/init.d voyager:/etc/init.d # insserv quota voyager:/etc/init.d # insserv boot.quota
Mit dem Befehl quota können Sie sich nun die Quoten der Benutzer anschauen.
voyager:~ # quota Disk quotas for user root (uid 0): none voyager:~ # quota walter Disk quotas for user walter (uid 501): Filesystem blocks quota limit grace files quota limit grace /dev/hdb1 5120* 5120 5120 3 0 0
Manchmal kann es vorkommen, daß durch ungünstige Umstände die Anzahl der benutzten Ressourcen in der Verwaltungsdatei mit der Wirklichkeit nicht mehr übereinstimmt. Dies passiert z. B. wenn Dateien verändert wurden, während das Quota-System aus war. Der Befehl quotacheck ändert diese Information. Allerdings nur unter Verwendung einiger Schalter.
voyager:~ # repquota -av *** Report for user quotas on device /dev/hdb1 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 32 0 0 4 0 0 walter -- 5120 5120 5120 3 0 0 Statistics: Total blocks: 7 Data blocks: 1 Entries: 2 Used average: 2,000000 voyager:~ # quotacheck -avR quotacheck: Quota for users is enabled on mountpoint /daten so quotacheck might damage the file. Please turn quotas off or use -f to force checking. voyager:~ # quotacheck -afvR quotacheck: Cannot remount filesystem mounted on /daten read-only so counted values might not be right. Please stop all programs writing to filesystem or use -m flag to force checking. voyager:~ # quotacheck -amfvR quotacheck: Scanning /dev/hdb1 [/daten] done quotacheck: Checked 4 directories and 1 files voyager:~ # repquota -av *** Report for user quotas on device /dev/hdb1 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 32 0 0 4 0 0 walter -- 0 5120 5120 0 0 0 Statistics: Total blocks: 7 Data blocks: 1 Entries: 2 Used average: 2,000000
Notizen:
Notizen:
Dateisystem und Disk Quotas
Zu Beginn der Aufgabe sollten Sie sich im Heimatverzeichnis befinden! Wechseln Sie das Verzeichnis nur, falls Sie dazu ausdrücklich aufgefordert werden. Einige Aufgaben lassen sich nicht ausführen! Versuchen Sie in diesen Fällen die Fehlermeldung zu interpretieren.
Notizen: