Load per perl-script abfragen ?

Bash, Shell, PHP, Python, Perl, CGI
demux
Posts: 77
Joined: 2002-06-17 11:39

Load per perl-script abfragen ?

Post by demux » 2004-11-22 16:24

Gibt es eine möglichkeit per perl-script den load des systemes abzufragen um dann gewisse scripte nicht auszuführen!?

Ich möchte scripte nur ausführen wenn das system gerade idle ist.

dogholiday
Posts: 17
Joined: 2004-09-30 16:36

Re: Load per perl-script abfragen ?

Post by dogholiday » 2004-11-22 17:20

So das script sollte dir was weiterhelfen:

Code: Select all

#!/usr/bin/perl -w

my @lines = `uptime`;
($load) = ($lines[0] =~ /average:s*([0-9.]+)/);

print $load."n";

demux
Posts: 77
Joined: 2002-06-17 11:39

Re: Load per perl-script abfragen ?

Post by demux » 2004-11-22 17:31

Cool, danke dogholiday :-)

dani_ch
Posts: 79
Joined: 2003-03-23 17:42

Re: Load per perl-script abfragen ?

Post by dani_ch » 2005-07-11 19:30

dieses skript gibt den serverload der letzten minute durch. ich hätte gerne die der letzten 15 minuten. aber irgendwie schaffe ich es nicht, das skript anzupassen, dass es klappt.

kann mir da jemand helfen?

mrmage
Posts: 8
Joined: 2005-07-24 13:43

Re: Load per perl-script abfragen ?

Post by mrmage » 2005-07-24 13:45

Hi Dani,

Versuchs mal damit:

Code: Select all

#!/usr/bin/perl -w

my @lines = `uptime`;
($load1, $load5, $load15) = ($lines[0] =~ /average:s*([0-9.]+)s*([0-9.]+)s*([0-9.]+)/);

print $load15."n"; 
Bin mir aber nicht sicher ob das funktioniert, habe lange Zeit nicht mehr mit Perl gearbeitet.

Gruß
MrMage

rob
Posts: 82
Joined: 2002-06-03 21:53
Location: Brandenburg

Re: Load per perl-script abfragen ?

Post by rob » 2005-08-03 11:54

Dani_CH wrote:dieses skript gibt den serverload der letzten minute durch. ich hätte gerne die der letzten 15 minuten. aber irgendwie schaffe ich es nicht, das skript anzupassen, dass es klappt.

kann mir da jemand helfen?
sub GetLoad
{
open(PROC,"/proc/loadavg"); # /proc/loadavg aufmachen
my $load=scalar(<PROC>); # lesen
close(PROC); # schließen
return((split(/ /,$load))[0..2]); #zurueckgeben
}

gibt die 3 Werte als Array zurück.