蒐集系統上的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);