The following one-liner prints quotas on a filesystem in human-readable form. The first argument (/home here) should be substituted with the filesystem of which you want the quotas.

The quotas file is usually world-readable on linux, so you can run this as any user.

In a linux user quota file, there are eight fields for every user. These are used/quota/limit blocks (in kilobytes), used/quota/limit inodes, and two other fields that probably do something about grace time, but I'm not sure in their semantics.

Note that this will work only on a filesystem with linux quotas, as quota system in other oses (such as sunos) is completely different. Even on linux, I belive there are two different quota file formats, and this probably work only with one of them.

Use at your own risk.

perl -we '$z = pack("x32"); open $F, "<", "$ARGV[0]/quota.user" or die +; for ($u = 0; 0 < read $F, $s, 32; $u++) { $s eq $z and next; @d = u +npack "L*", $s; $n = getpwuid $u; push @l, "$n($u): blocks $d[2]/$d[1 +]/$d[0], files $d[5]/$d[4]/$d[3], grace $d[6]/$d[7]\n"; push @s, $d[0 +] || 1e999; } print @l[sort { $s[$a] <=> $s[$b] } 0 .. @l - 1];' /hom +e > quotas.txt

In reply to Getting linux user quotas by ambrus

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.