Donnerstag, 8. August 2013

$ make repquota human readable

Leider musste ich feststellen das es für das command line Tool 'repquota' unter Mac OS X nur einen Report in Kilobyte ausgibt.

Beispiel:

ham-10-101:~ patrick_faust$ repquota -va
*** Report for group quotas on /Volumes/Quota (/dev/disk0s2)
                        1K Block limits               File limits
User                used        soft        hard  grace    used  soft  hard  grace
staff     --   101934280           0           0            993     0     0       

*** Report for user quotas on /Volumes/Quota (/dev/disk0s2)
                        1K Block limits               File limits
User                used        soft        hard  grace    used  soft  hard  grace
patrick_faust--   101924808   102400000   122880000           1174     0     0     


Wenn man Limits im hundert Gigabyte Bereich hat, dann sind die Kilobyte Werte auf den ersten Blick kaum aussagekräftig.

Eine Ausgabe in Megabyte oder Gigabyte musste her, auch die man Page von 'repqouta' machte mir wenig Hoffnung.

Meine ersten versuche waren die Ausgabe an 'awk' oder 'sed' zu pipen und die Werte in Megabyte oder Gigabyte umzurechnen. Allerdings gab es zu viele äußere Einflüsse die das Ergebnis hätten verfälschen können, an ein Einsatz in einer Produktivumgebung war nicht zu denken.

Der entscheidende Hinweis wurde mir in den Apple Support Communities zugespielt, der 'repquota' Source Code.
Die unter dem Link abgebildeten Dateien öffnen, Text kopieren und lokal auf dem Computer ab speichern.
Zum Editieren der Dokumente empfiehlt sich TextWrangler.app.

In der Datei repquota.c müssen die Zeilen zwischen 353 und 355 angepasst werden:

    353:curbytes / 1024 / 1024,
    354:bsoftlimit / 1024 / 1024,
    355:OSSwapBigToHostInt64( dqbuf.dqb_bhardlimit ) / 1024 / 1024,

Änderungen speichern, Source Code fertig. Zum kompilieren muss XCode inkl. "XCode command line tools" installiert sein.

Im Terminal Navigiert man dann zu dem Pfad in dem das repquota Source Code abgespeichert ist.
Dann ruft man das Tool 'make' mit der Option -f auf, -f übergibt den Pfad zum Makefile und repquota benennt das Tool das kompiliert werden soll.
Anschließend befindet sich im Projekt Ordner eine neue Datei repquota. Das ist euer neues Tool mit der angepassten Ausgabe, in unserem Beispiel erfolgt diese in Megabyte.

Beispiel Anhand meiner Pfade:

$ cd /Users/patrick_faust/Documents/Scriptz/repquota.tproj
$ make -f /Users/patrick_faust/Documents/Scriptz/repquota.tproj/Makefile repquota

Ergebnis:

ham-10-101:repquota.tproj patrick_faust$ ./repquota -va
*** Report for group quotas on /Volumes/Quota (/dev/disk0s2)
                        1MB Block limits               File limits
User                used        soft        hard  grace    used  soft  hard  grace
staff     --       99545           0           0            993     0     0       

*** Report for user quotas on /Volumes/Quota (/dev/disk0s2)
                        1MB Block limits               File limits
User                used        soft        hard  grace    used  soft  hard  grace
patrick_faust--       99535      100000      120000           1174     0     0      


Für Rückfragen stehe ich gern zur Verfügung, einfach Post Kommentieren.


Grüße,

Keine Kommentare:

Kommentar veröffentlichen