#!/usr/bin/perl -w use File::Find; my %prev; my $oldfiles = "/var/log/homefilesizes"; if(open OLD,$oldfiles) { while() { next unless(/^(\S+)\s+(\d+)$/); $prev{$1} = $2; } close OLD; } else { %prev = (); } open OLD,">$oldfiles" or die "$!"; sub wanted { return 0 if(! -f $_ || /\s/); my $size = -s $_; if(exists $prev{$_}) { my $oldsize = $prev{$_}; if($size > $oldsize*1.2) { my $ls=`ls -luG $_`; $ls =~ s/\s+/ /g; print "$ls\n"; } } print OLD "$_ $size\n"; } print "Files that have increased in size by more than 20\% since yesterday:\n\n"; find({wanted => \&wanted, no_chdir=>1},'/home'); close OLD;