Manipulating Disk Quotas
Perl scripts like our core-killers from the last section can offer a way to deal with junk files that cause unnecessary disk full situations. But even when run on a regular basis, they are still a reactive approach; the administrator deals with these files only after they’ve come into existence and cluttered the filesystem.
There’s another, more proactive approach: filesystem quotas. Filesystem quotas, operating system permitting, allow you to constrain the amount of disk space a particular user can consume on a filesystem. Windows 2000 and all modern Unix variants offer quotas. NT4 requires a third-party product, and MacOS users are S.O.L. (Simply or Sore Out of Luck).
Though proactive, this approach is considerably more heavy-handed than cleanup scripts because it applies to all files, not just spurious ones like core dumps. Most system administrators find using a combination of the automated cleanup scripts and quotas to be the best strategy. The former helps prevent the latter from being necessary.
In this section,
we’ll deal with manipulating Unix quotas from Perl. Before we
get to that subject, we should take a moment to understand how quotas
are set and queried “by hand.” To enable quotas on a
filesystem, a Unix system administrator usually adds an entry to the
filesystem mount table (e.g.,
/etc/vfstab) and then reboots the system or
manually invokes the quota enable command (usually
quotaon). Here’s an example
/etc/vfstab from a Solaris ...