Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HS] [PERL] pas de resultat pour top dans un cron

4 réponses
Avatar
pingouin osmolateur
Salut tout le monde
Je veux envoyer les résultats de la commande top par
mail un fois par jour.

Voila l'exemple statsTOP.pl

#!/usr/bin/perl
$topoutput = `/usr/bin/top -b -n1`;
open (MAIL,"|/usr/sbin/sendmail -t");
print MAIL "From: email\@mydomain.com\n";
print MAIL "To: email\@mydomain.com\n";
print MAIL "Subject: Server Stats\n\n";
print MAIL "Resultats $topoutput\n\n";
close (MAIL);

Or quand je lance l'executable à la mano pas de souci
j'obtiens bien le résultat mais des que je mets la
commande cron je n'obtiens pas les résultats de la
commande top pourtant le cron est bien lancé.

Est-ce que vous etez deja tombé sur ce problème?

Je penche pour une histoire de redirection de la
sortie standard vers le descripteur fichier.
Merci d'avance
AC



p4.vert.ukl.yahoo.com uncompressed/chunked Thu Aug 17 06:13:31 GMT 2006


___________________________________________________________________________
Découvrez un nouveau moyen de poser toutes vos questions quelque soit le sujet !
Yahoo! Questions/Réponses pour partager vos connaissances, vos opinions et vos expériences.
http://fr.answers.yahoo.com


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

4 réponses

Avatar
Charles Plessy
Le Thu, Aug 17, 2006 at 11:59:59AM +0200, pingouin osmolateur a écrit :
Salut tout le monde
Je veux envoyer les résultats de la commande top par
mail un fois par jour.

Voila l'exemple statsTOP.pl

#!/usr/bin/perl
$topoutput = `/usr/bin/top -b -n1`;
open (MAIL,"|/usr/sbin/sendmail -t");
print MAIL "From: ";
print MAIL "To: ";
print MAIL "Subject: Server Statsnn";
print MAIL "Resultats $topoutputnn";
close (MAIL);



Si c'est juste pour faire ça, on peut se passer de perl:

usr/bin/top -b -n1 | mail -a "From:" -s "Server Stats"

fait la même chose, en plus robuste...

Bonne journée,

--
Charles Plessy
http://charles.plessy.org
Wako, Saitama, Japon


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Patrice Karatchentzeff
Le 17/08/06, pingouin osmolateur a écrit :
Salut tout le monde
Je veux envoyer les résultats de la commande top par
mail un fois par jour.

Voila l'exemple statsTOP.pl

#!/usr/bin/perl
$topoutput = `/usr/bin/top -b -n1`;
open (MAIL,"|/usr/sbin/sendmail -t");
print MAIL "From: ";
print MAIL "To: ";
print MAIL "Subject: Server Statsnn";
print MAIL "Resultats $topoutputnn";
close (MAIL);



1) écrire du Perl comme cela, c'est mal (c) (r)

Utilise a minima les pragma -w (use warnings).

2) utilise les modules dès que tu peux : c'est plus robuste (notamment
pour envoyer le courriel)

Or quand je lance l'executable à la mano pas de souci
j'obtiens bien le résultat mais des que je mets la
commande cron je n'obtiens pas les résultats de la
commande top pourtant le cron est bien lancé.



donc, c'est l'environnement de cron qui déchose...

Généralement, l'environnement par défaut est très minimaliste; il y a
donc une chance non négligeable pour que perl ne soit même pas dans le
path...

Essaie de jouer avec l'environnement : ajoute un

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Est-ce que vous etez deja tombé sur ce problème?



Plein de fois...

PK


--
| _,,,---,,_ Patrice KARATCHENTZEFF
ZZZzz /,`.-'`' -. ;-;;,_ mailto:
|,4- ) )-,_. , ( `'-' http://p.karatchentzeff.free.fr
'---''(_/--' `-'_)
Avatar
Vincent Lefevre
On 2006-08-17 14:05:13 +0200, Patrice Karatchentzeff wrote:
1) écrire du Perl comme cela, c'est mal (c) (r)

Utilise a minima les pragma -w (use warnings).



Surtout "use strict;", je dirais. Je trouve le -w gênant dans certains
cas, surtout que les warnings sont dynamiques.

2) utilise les modules dès que tu peux : c'est plus robuste (notamment
pour envoyer le courriel)



Oui, notamment pour le support de MIME. Combien de fois j'ai reçu des
mails avec des caractères non ASCII et envoyés par "mail" ou quelque
chose d'équivalent...

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / SPACES project at LORIA


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Patrice Karatchentzeff
Le 17/08/06, Vincent Lefevre a écrit :
On 2006-08-17 14:05:13 +0200, Patrice Karatchentzeff wrote:
> 1) écrire du Perl comme cela, c'est mal (c) (r)
>
> Utilise a minima les pragma -w (use warnings).

Surtout "use strict;", je dirais. Je trouve le -w gênant dans certains
cas, surtout que les warnings sont dynamiques.



heu oui... remarque que j'avais voulu marqué les deux (note le « les
») et que j'ai zapé la fin :)

PK

--
| _,,,---,,_ Patrice KARATCHENTZEFF
ZZZzz /,`.-'`' -. ;-;;,_ mailto:
|,4- ) )-,_. , ( `'-' http://p.karatchentzeff.free.fr
'---''(_/--' `-'_)