D'accord pour procinfo, c'est encore la méthode la plus simple et la plus rapide.
Par contre, grep et awk... ça c'est dommage, surtout que perl est fait pour gérer les chaines facilement et efficacement. C'est pas tellement pour la performance, c'est pour le principe ;)
(je passe sur le choix des noms de variables, perso je déteste les variables n'ayant pas un nom renseignant sur leur utilité, mais bon, c'est un choix)
D'autre part, pourquoi toto et cpu sont-ils des tableaux ? il n'y a jamais qu'une seule valeur... et je n'ai pas vu (mais j'ai pe mal regardé) d'endroit ou un contexte de liste était nécessaire...
--- check_cpu.pl.bak 2004年04月10日 03:10:54.000000000 +0200
+++ check_cpu.pl 2004年04月10日 03:09:56.000000000 +0200
@@ -8,6 +8,9 @@
# ========================
# 07-Sept-2002 - Benjamin Jakubowski
# Created from check_cpu.pl for LDAP Serveur use 100% CPU
+#
+# 10-Apr-2004 - Clement Hermann
+# removing grep and awk call in @toto, @cpu is now $cpu...
[^] # Re: Test CPU dans Nagios
Posté par nodens . En réponse au message [Terminal] Test CPU dans Nagios. Évalué à 3.
Par contre, grep et awk... ça c'est dommage, surtout que perl est fait pour gérer les chaines facilement et efficacement. C'est pas tellement pour la performance, c'est pour le principe ;)
(je passe sur le choix des noms de variables, perso je déteste les variables n'ayant pas un nom renseignant sur leur utilité, mais bon, c'est un choix)
D'autre part, pourquoi toto et cpu sont-ils des tableaux ? il n'y a jamais qu'une seule valeur... et je n'ai pas vu (mais j'ai pe mal regardé) d'endroit ou un contexte de liste était nécessaire...
Bon, comme critiquer sans rien proposer c'est Mal©, voici un patch sans fork autre que l'appel à procinfo, et 2/3 autres modifs...
(la prochaine fois, la critique ce sera l'absence de licence quelconque et le fait que use strict; c'est Bien©... mais là il est tard et j'ai la flemme... sans compted que j'utilise plutôt check_load, moi) ;)
allez, le patch promis :
--- check_cpu.pl.bak 2004年04月10日 03:10:54.000000000 +0200
+++ check_cpu.pl 2004年04月10日 03:09:56.000000000 +0200
@@ -8,6 +8,9 @@
# ========================
# 07-Sept-2002 - Benjamin Jakubowski
# Created from check_cpu.pl for LDAP Serveur use 100% CPU
+#
+# 10-Apr-2004 - Clement Hermann
+# removing grep and awk call in @toto, @cpu is now $cpu...
sub print_help ();
sub print_usage ();
@@ -17,33 +20,36 @@
print_usage ();
exit 0;
}
-@toto = `procinfo | grep idle | awk \ '{print \5ドル}\'`;
+@toto = grep (/idle/, `procinfo`);
+chomp $toto[0];
+$toto[0] =~ s/.*\s+([\d\.]+)%.*/1ドル/;
+print "$toto[0]\n";
$warning = @ARGV[0];
$critik = @ARGV[1];
$STATE_CRITICAL = 2;
$STATE_OK = 0;
$STATE_WARNING = 1;
-@cpu = 100-@toto[0];
-if ( $cpu[0] >= $critik )
+$cpu = 100-$toto[0];
+if ( $cpu >= $critik )
{
- printf "CRITICAL : use @cpu%";
- printf " idle : @toto";
+ printf "CRITICAL : use $cpu%";
+ printf " idle : $toto[0]%";
exit $STATE_CRITICAL
;;
}
-if (($cpu[0] < $critik)&&($cpu[0] < $warning))
+if (($cpu < $critik)&&($cpu < $warning))
{
- printf "OK : use @cpu%";
- printf " idle : @toto\n";
+ printf "OK : use $cpu%";
+ printf " idle : $toto[0]%\n";
exit $STATE_OK
;;
}
-if (($cpu[0] >= $warning)&&($cpu[0] < $critik))
+if (($cpu >= $warning)&&($cpu < $critik))
{
- printf "WARNING : use @cpu%";
- printf " idle : @toto\n";
+ printf "WARNING : use $cpu%";
+ printf " idle : $toto[0]%\n";
exit $STATE_WARNING
;;
}