#!/opt/local/bin/perl #script that pesters users who use up too much space in /home use strict; use warnings; use Readonly; local $\ = "\n"; #use POSIX 'strftime'; Readonly my $QUOTA => 2_000_000; #2G is reasonable, IMO (1k blocks) Readonly my $HOME_DIR => '/fst/home'; my @HOM_USE_BY_DIR = `sudo dhog -o $HOME_DIR`; die "Error: sudo dhog failed: $! status $? " if ($?); #print @HOM_USE_BY_DIR; my %HOM_USE_BY_DIR; foreach my $i (@HOM_USE_BY_DIR) { chomp $i; #print $i; if ( my ( $sp, $uid ) = $i =~ m{\s?(\d+)\s+/(?:\w+/)*(m\d[a-z]{3}\d{2})} ) { my $KMG = 0; while ( $sp > 1023 ) { #print $sp; $sp = $sp / 1024; ++$KMG; } my $mag_ind = ( $KMG == 0 ) ? 'K' : ( $KMG == 1 ) ? 'M' : ( $KMG == 2 ) ? 'G' : 'some huge multiple of 1024'; $sp = "$sp $mag_ind"; print "$uid: $sp"; } ## end if ( my ( $sp, $uid ) = $i =~ m{\s?(\d+)\s+/(?:\w+/)*(m\d[a-z]{3}\d{2})} ) } ## end foreach my $i (@HOM_USE_BY_DIR)