#!/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]