#!/usr/bin/perl my $logfile = '/var/log/top'; my $max_size = 10**6; my $max_files = 10; my $delay = 2; my $count = 0; my $num = 0; while (1) { my $time = scalar localtime; # rotate logfiles so they don't get too big if ( -e "$logfile$num.log" and -s "$logfile$num.log" > $max_size ) { $count++; $num = $count % $max_files; unlink "$logfile$num.log" if -e "$logfile$num.log"; } my $top = `top -n1`; open LOG, ">>$logfile$num.log" or die "Can't write $logfile $!\n"; print LOG $time, "\n", $top, "\n\n"; close LOG; sleep $delay; }