[HS] script perl marche pas en cron
Le
Nicolas Roudninski
Bonjour à tous,
Je me suis fait un petit script perl qui vérifie ma boite aux lettres
et m'affiche un message (avec zenity) si un auteur choisi m'a écrit.
Le problème est que ce script fonctionne bien à partir d'une console
mais pas à partir d'une tache cron, du moins pas tout le script
Apparemment, le script fonctionne pour ce qui est de la vérif email,
mais pas ensuite (affichage de l'info via zenity).
Ce pourrait-ce être une question de DISPLAY ?
Voici le script en question :
debut du script--
my $xdlg = "/usr/bin/zenity";
my $pop;
my $i;
my $nom;
my @amis;
my $amis_data;
my $email;
#chomp(my $user = `whoami`);
my $user = "nicolas";
chomp(my $home_dir = "/home/$user");
print "connection au serveur";
$pop = new Mail::POP3Client( USER => "nroudninski",
PASSWORD => "YDjqCDDi",
HOST => "pop.wanadoo.fr" );
sub read_data {
open DATAFILE, "$home_dir/amis.dat"
or die "Fichier introuvable !";
while (<DATAFILE>) {
chomp;
push @amis, $_."";
}
for ($i = 1; $i <= $pop->Count(); $i++) {
# print @amis;
foreach my $amis (@amis) {
my @amis_data = split / *: */, $amis;
$email = $amis_data[1];
chomp($email);
$nom = $amis_data[0];
&compare;
# print $email;
}
}
close DATAFILE;
return ;
} # - end of subroutine read_data -
sub compare {
# for ($i = 1; $i <= $pop->Count(); $i++) {
foreach ( $pop->Head( $i ) ) {
if (/From:.*$email/) {
chomp;
print "Un message de $nom [$email]";
# s/From://;
# print " [$_ ]";
my $adresse = $_;
system"$xdlg --info --text 'Un message
de $nom'"; }
}
# }
return ;
} # - end of subroutine compare -
read_data;
-fin du script-
--
Nicolas Roudninski
nroudninski@wanadoo.fr
-
Toute ressemblance avec des fautes d'orthographe, de grammaire
ou de conjugaison existantes ou ayant existé serait entièrement
fortuite et indépendante de la volonté de l'auteur.
--
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
Je me suis fait un petit script perl qui vérifie ma boite aux lettres
et m'affiche un message (avec zenity) si un auteur choisi m'a écrit.
Le problème est que ce script fonctionne bien à partir d'une console
mais pas à partir d'une tache cron, du moins pas tout le script
Apparemment, le script fonctionne pour ce qui est de la vérif email,
mais pas ensuite (affichage de l'info via zenity).
Ce pourrait-ce être une question de DISPLAY ?
Voici le script en question :
debut du script--
my $xdlg = "/usr/bin/zenity";
my $pop;
my $i;
my $nom;
my @amis;
my $amis_data;
my $email;
#chomp(my $user = `whoami`);
my $user = "nicolas";
chomp(my $home_dir = "/home/$user");
print "connection au serveur";
$pop = new Mail::POP3Client( USER => "nroudninski",
PASSWORD => "YDjqCDDi",
HOST => "pop.wanadoo.fr" );
sub read_data {
open DATAFILE, "$home_dir/amis.dat"
or die "Fichier introuvable !";
while (<DATAFILE>) {
chomp;
push @amis, $_."";
}
for ($i = 1; $i <= $pop->Count(); $i++) {
# print @amis;
foreach my $amis (@amis) {
my @amis_data = split / *: */, $amis;
$email = $amis_data[1];
chomp($email);
$nom = $amis_data[0];
&compare;
# print $email;
}
}
close DATAFILE;
return ;
} # - end of subroutine read_data -
sub compare {
# for ($i = 1; $i <= $pop->Count(); $i++) {
foreach ( $pop->Head( $i ) ) {
if (/From:.*$email/) {
chomp;
print "Un message de $nom [$email]";
# s/From://;
# print " [$_ ]";
my $adresse = $_;
system"$xdlg --info --text 'Un message
de $nom'"; }
}
# }
return ;
} # - end of subroutine compare -
read_data;
-fin du script-
--
Nicolas Roudninski
nroudninski@wanadoo.fr
-
Toute ressemblance avec des fautes d'orthographe, de grammaire
ou de conjugaison existantes ou ayant existé serait entièrement
fortuite et indépendante de la volonté de l'auteur.
--
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

Poser une question


J'espère que cela n'est pas ton vrai login !
Laurent Besson a écrit :
euh, mince, je change ça tout de suite !!!
--
Nicolas Roudninski
----------------------
Toute ressemblance avec des fautes d'orthographe, de grammaire
ou de conjugaison existantes ou ayant existé serait entièrement
fortuite et indépendante de la volonté de l'auteur.
--
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
Fait une demande à de ne pas archiver ce thread !
:(
Comment dans ta console lances tu le script ?
Car chez moi il me met : Can't locate object method "new" via package
"Mail::POP3Client" (perhaps you forgot to load "Mail::POP3Client"?) at
mail.pl line 16 ...
Mais bon c'est une autre histoire !
script n'a pas puisqu'il est lancé par cron.
Il vaut mieux dans ton cas faire un script qui boucle avec un sleep 5
dans la boucle. Le résultat est le même mais tu hérites alors de la
variable DISPLAY de ton environnement graphique.
gaby
--
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