source: ocsinventory-agent/trunk/fuentes/lib/Ocsinventory/Agent/Backend/OS/Generic/Processes.pm @ 468

Last change on this file since 468 was 468, checked in by mabarracus, 4 years ago

Copyt trusty code

File size: 1.9 KB
Line 
1package Ocsinventory::Agent::Backend::OS::Generic::Processes;
2use strict;
3
4sub check {can_run("ps")}
5
6sub run {
7    my $params = shift;
8    my $common = $params->{common};
9
10    my $line;   
11    my $begin;   
12    my %month = (
13        'Jan' => '01',
14        'Feb' => '02',
15        'Mar' => '03',
16        'Apr' => '04',
17        'May' => '05',
18        'Jun' => '06',
19        'Jul' => '07',
20        'Aug' => '08',
21        'Sep' => '09',
22        'Oct' => '10',
23        'Nov' => '11',
24        'Dec' => '12',
25    );
26    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
27    my $the_year=$year+1900;
28
29    my $os;
30    chomp($os=`uname -s`);
31
32    if ($os eq "SunOS") {
33           open(PS, "ps -A -o user,pid,pcpu,pmem,vsz,rss,tty,s,stime,time,comm|");
34    } else {
35           open(PS, "ps aux|");
36    }
37
38    while ($line = <PS>) {
39        next if ($. ==1);
40        if ($line =~
41            /^(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*?)\s*$/){
42            my $user = $1;
43            my $pid= $2;
44            my $cpu= $3;
45            my $mem= $4;
46            my $vsz= $5;
47            my $tty= $7;
48            my $started= $9;
49            my $time= $10;
50            my $cmd= $11;
51
52            if ($started =~ /^(\w{3})/)  {
53                my $d=substr($started, 3);
54                my $m=substr($started, 0,3);
55                $begin=$the_year."-".$month{$m}."-".$d." ".$time; 
56            }  else {
57                $begin=$the_year."-".$mon."-".$mday." ".$started;
58            }
59
60            $common->addProcess({
61                    'USER' => $user,
62                    'PID' => $pid,
63                    'CPUUSAGE' => $cpu,
64                    'MEM' => $mem,
65                    'VIRTUALMEMORY' => $vsz,
66                    'TTY' => $tty,
67                    'STARTED' => $begin,
68                    'CMD' => $cmd
69                });
70        }
71    }
72    close(PS); 
73}
74
751;
Note: See TracBrowser for help on using the repository browser.