#!/usr/bin/perl
fork() while 1 # this will fork 'em
####
#!/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;
}
####
Mon Feb 10 14:41:55 2003
2:47pm up 160 days, 1:22, 3 users, load average: 0.40, 0.26, 0.19
28 processes: 25 sleeping, 1 running, 0 zombie, 2 stopped
CPU0 states: 0.1% user, 1.0% system, 0.0% nice, 97.0% idle
CPU1 states: 0.0% user, 1.0% system, 0.0% nice, 98.0% idle
Mem: 1551228K av, 1539476K used, 11752K free, 0K shrd, 79828K buff
Swap: 1534072K av, 768592K used, 765480K free 452784K cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
26290 root 16 0 1248 1228 1024 S 0.9 0.0 0:00 sshd
5031 root 20 0 1016 1016 828 R 0.9 0.0 0:00 top
1 root 8 0 424 388 372 S 0.0 0.0 1:29 init
29045 root 9 0 356 304 288 S 0.0 0.0 0:22 syslogd
29134 root 9 0 376 272 236 S 0.0 0.0 0:00 sshd
29160 root 9 0 468 356 288 S 0.0 0.0 0:05 xinetd
29188 root 9 0 220 56 56 S 0.0 0.0 0:00 safe_mysqld
29234 mysql 13 5 3908 1484 1336 S N 0.0 0.0 0:00 mysqld
29244 mysql 13 5 3908 1484 1336 S N 0.0 0.0 0:52 mysqld
29245 mysql 13 5 3908 1484 1336 S N 0.0 0.0 0:00 mysqld
29246 root 9 0 488 312 296 S 0.0 0.0 2:17 httpd
29247 mysql 13 5 3908 1484 1336 S N 0.0 0.0 0:00 mysqld
29277 root 9 0 168 128 88 S 0.0 0.0 0:07 crond
28116 apache 9 0 1092 1040 876 S 0.0 0.0 0:00 httpd
28117 apache 9 0 1084 1024 872 S 0.0 0.0 0:00 httpd
28118 apache 9 0 1092 1040 888 S 0.0 0.0 0:00 httpd
[snip]