2013-03-27

記錄process list...PART1

蒐集系統上的process,目的是為了日後評估哪些process是系統和應用程式運行所必要的,今日先透過script來收集和統計process的清單。




##########################################################
## Target:                                            
## collect & filter uid, pid, ppid and cmd column
## from ps -ef result then export to record      
##                                                    
## Date:   2013/03/27                              
## Ver:    1.0                                        
## Author: Jammy Yu                                  
##########################################################

my $chk_time = `date +%Y%m%d`;
my @process = `ps -ef | grep -v UID`;

chomp($chk_time);

open(FHD, ">> /TWSE/process/process_$chk_time.log") || die "$!\n";

foreach (@process)
{
   chomp;
 
   ##     $1=UID  $2=PID $3=PPID                   $4=CMD
   $_ =~ /(\w+)\s+(\d+)\s+(\d+).+?[-|pts].+?:.+?\s+(.+)/;
 
   print FHD "$1,$2,$3,$4\n";
}

close(FHD);



open(LOG, " /TWSE/process/process_$chk_time.log") || die "$!\n";

my @cmd;
my %count;
while ( <LOG> )
{
   chomp;
   my($uid, $pid, $ppid, $cmd) = split(/\,/, $_);
   push(@cmd, $cmd);
}

foreach (@cmd)
{
   if (exists $count{$_})
   {
      $count{$_}++;
   }
   else
   {
      $count{$_} = 1;
   }
}

foreach (keys %count)
{
   print "$_ ---> $count{$_} time(s)\n";
}

close(LOG);