OVH Cloud OVH Cloud

nail et cron

22 réponses
Avatar
Christophe PEREZ
Bonsoir,

Suivant les bons conseils de TiChou, j'avais installé nail en
remplacement de mailx pour mes différents postes hors serveur.
J'avais fait le lien de /usr/bin/nail vers /bin/mail.
J'avais fait le test en ligne de commande, tout était bon.
Et j'avais bêtement cru que ce lien suffirait à cron.
Or, ça ne semble pas le cas, je ne reçois plus aucun mail de la sortie
de cron de ces postes.
J'ai bien le smtp de mon serveur (postfix) déclaré dans /etc/nailrc,
MAILTO=root dans /etc/crontab, et un alias de root vers chris dans le
/etc/aliases du serveur.

A priori, il n'y a pas de pb sur le serveur puisque lorsque j'avais des
postfix locaux sur chaque poste qui envoyait sur le serveur, j'avais bien
toutes mes sorties de cron par mail.

Avec un test dans mon cron.hourly, je me retrouve avec ça dans
/var/log/syslog :
CROND[26712]: (root) MAIL (mailed 46 bytes of output but
got status 0xffffffff )

Mais que veut donc dire ce status ? et l'erreur est-elle bien là ?
Quel détail me manque t'il donc au niveau de la config de cron ?

Merci.

--
Christophe PEREZ
Écrivez moi sans _faute !

10 réponses

1 2 3
Avatar
Nicolas George
"TiChou" wrote in message :
case "$opt" in
f)
name="$OPTARG"
;;
F)
fullname="$OPTARG"
;;
?)
usage
;;
esac


Il faut donc espérer que cron n'utilise pas l'infâme option -t...

Avatar
TiChou
Dans le message <news:,
*Christophe PEREZ* tapota sur f.c.o.l.configuration :

Fonctionne tel que ci-dessus (getopt présent), mais sortie un peu lourde
du cron :
----------------------------------------------------------------
From: root (Cron Daemon)
To: root
Subject: Cron nice -n 19 run-parts /etc/cron.hourly
X-Cron-Env: <SHELL=/bin/bash>
X-Cron-Env: <PATH=/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <MAILTO=root>
X-Cron-Env: <HOME=/>
X-Cron-Env: <LOGNAME=root>

ceci est de test de sortie cron
----------------------------------------------------------------

Pourquoi tout cet environnement et ces champs From et To qui
n'apparaissent habituellement pas dans les sortie de cron ?


Ah... Comme quoi on ne pense pas toujours à tout, surtout à l'heure où j'ai
fait ça. :)
C'est tout simplement parce qu'avec nail ce qui arrive par l'entrée standard
est uniquement ce qui constitue le corps du message indépendamment des
en-têtes. Alors qu'avec le wrapper sendmail ce qui arrive par l'entrée
standard c'est le message en entier, c'est-à-dire les en-têtes et le corps
du message. Quand cron envoie un mail, il envoie ses en-têtes et le corps de
son message au wrapper sendmail et j'avais oublié ce détail important...

Malheureusement je n'ai vu aucune option dans nail qui pourrait arranger nos
affaires. Si je trouve une astuce, je te tiendrais au courant sinon j'ai
bien peur qu'il faille soit se contenter de mails mal formatés (beurk) ou
soit alors se tourner vers l'installation d'un serveur/relais mail léger
comme ssmtp ou esmtp.

--
TiChou

Avatar
TiChou
Dans le message <news:cmoh11$24jj$,
*Nicolas George* tapota sur f.c.o.l.configuration :

Il faut donc espérer que cron n'utilise pas l'infâme option -t...


Oui, tout à fait et c'est bien le cas avec Dillon's Cron et Vixie-Cron. Pour
les autres ça reste à vérifier.

--
TiChou

Avatar
Nicolas George
"TiChou" wrote in message :
Malheureusement je n'ai vu aucune option dans nail qui pourrait arranger nos
affaires. Si je trouve une astuce, je te tiendrais au courant sinon j'ai
bien peur qu'il faille soit se contenter de mails mal formatés (beurk) ou
soit alors se tourner vers l'installation d'un serveur/relais mail léger
comme ssmtp ou esmtp.


Je n'ai pas suivi tout ce qu'était censé faire nail, mais s'il s'agit de
livrer le mail en local, il y a également la possibilité de remplacer
l'injecteur local sendmail par un script qui invoque directemeent un MDA
comme procmail.

Avatar
TiChou
Dans le message <news:cmokq2$26kq$,
*Nicolas George* tapota sur f.c.o.l.configuration :

Je n'ai pas suivi tout ce qu'était censé faire nail, mais s'il s'agit de
livrer le mail en local,


Justement non :), il s'agit de relayer les mails vers une autre machine
disposant d'un MTA et ce qui s'en suit. On préconisait d'utiliser nail car
celui-ci permet, à défaut de pouvoir utiliser un wrapper sendmail local,
d'utiliser un smtp extérieur définit grâce à la variable smtp du fichier
/etc/nail.rc.

il y a également la possibilité de remplacer
l'injecteur local sendmail par un script qui invoque directemeent un MDA
comme procmail.


Ça peut être éventuellement une solution qui intéressera Christophe s'il
désire que les mails soient stockés localement sur la machine.

--
TiChou

Avatar
Christophe PEREZ
Le Mon, 08 Nov 2004 21:39:10 +0100, TiChou a écrit:

Ça peut être éventuellement une solution qui intéressera Christophe s'il
désire que les mails soient stockés localement sur la machine.


Non, non, du tout, nous étions bien sur la même longueur d'onde ;-)

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
Christophe PEREZ
Le Mon, 08 Nov 2004 21:03:36 +0100, TiChou a écrit:

Ah... Comme quoi on ne pense pas toujours à tout, surtout à l'heure où j'ai
fait ça. :)


Sinon, ça serait trop facile ;-)

C'est tout simplement parce qu'avec nail ce qui arrive par l'entrée standard
est uniquement ce qui constitue le corps du message indépendamment des
en-têtes. Alors qu'avec le wrapper sendmail ce qui arrive par l'entrée
standard c'est le message en entier, c'est-à-dire les en-têtes et le corps
du message. Quand cron envoie un mail, il envoie ses en-têtes et le corps de
son message au wrapper sendmail et j'avais oublié ce détail important...

Malheureusement je n'ai vu aucune option dans nail qui pourrait arranger nos
affaires. Si je trouve une astuce, je te tiendrais au courant sinon j'ai
bien peur qu'il faille soit se contenter de mails mal formatés (beurk)


Et pourquoi ne pas filtre tout simplement l'entré pour n'injecter dans
nail que le corps et pas les entêtes ?
Prendre donc tout ce qui suit la première ligne vide... non ?
Et si j'ai bien compris, c'est filtrer le &0, mais là, moi, déjà que le
&0 je le découvre... ;-)


ou
soit alors se tourner vers l'installation d'un serveur/relais mail
léger comme ssmtp ou esmtp.


Beurk !
Justement, le but, c'est bien d'éviter ça, car après tout, j'avais bien
un postfix léger sur chaque machine mais que je préférais supprimer.

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
TiChou
Dans le message <news:,
*Christophe PEREZ* tapota sur f.c.o.l.configuration :

Malheureusement je n'ai vu aucune option dans nail qui pourrait arranger
nos affaires. Si je trouve une astuce, je te tiendrais au courant sinon
j'ai bien peur qu'il faille soit se contenter de mails mal formatés
(beurk)


Et pourquoi ne pas filtre tout simplement l'entré pour n'injecter dans
nail que le corps et pas les entêtes ?


Parce que certains en-têtes sont utiles, comme par exemple l'objet du mail.
D'ailleurs, j'imagine que les mails que tu as reçu, ne comportent aucun
objet ?

Prendre donc tout ce qui suit la première ligne vide... non ?


Oui, si tu veux. Mais autant les laisser finalement ? Ces en-têtes
fournissent quand même des informations utiles.

Et si j'ai bien compris, c'est filtrer le &0, mais là, moi, déjà que le
&0 je le découvre... ;-)


Tu remplaces la dernière ligne du script par :

/usr/bin/sed '1,/^$/d' <&0 | /usr/bin/nail -r "$from" -- $@

ou soit alors se tourner vers l'installation d'un serveur/relais mail
léger comme ssmtp ou esmtp.


Beurk !
Justement, le but, c'est bien d'éviter ça, car après tout, j'avais bien
un postfix léger sur chaque machine mais que je préférais supprimer.


Oui, mais c'est quand même des services très légers, pas des usines à gaz
comme postfix. Mais je peux comprendre ton choix de ne pas vouloir en
installer. :)

--
TiChou


Avatar
Christophe PEREZ
Le Tue, 09 Nov 2004 00:43:54 +0100, TiChou a écrit:

Parce que certains en-têtes sont utiles, comme par exemple l'objet du mail.
D'ailleurs, j'imagine que les mails que tu as reçu, ne comportent aucun
objet ?


En fait, c'est un peu plus drôle que ça.
voici précisément un des mails en question :

From ""@KanelXP.novazur.fr Mon Nov 8 22:49:01 2004
Return-Path: <""@KanelXP.novazur.fr>
X-Original-To: root
Delivered-To:
Date: Mon, 08 Nov 2004 22:49:00 -0400
From: "CronDaemon" <""@KanelXP.novazur.fr>
To:
Message-ID:
User-Agent: nail 10.6 11/15/03
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on serveur.novazur.fr
X-Spam-Level:
X-Spam-Status: No, hits=-0.0 required=5.0 testsºYES_00,UPPERCASE_25_50
autolearn=no version=2.63

From: root (Cron Daemon)
To: root
Subject: Cron date
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>

Mon Nov 8 22:49:00 AST 2004

Donc c'est bien dans le corps que l'on retrouve des entêtes... bizarre
non ?


Prendre donc tout ce qui suit la première ligne vide... non ?


Oui, si tu veux. Mais autant les laisser finalement ? Ces en-têtes
fournissent quand même des informations utiles.


Bof !
Je crois que tu verras mieux maintenant ;-)

Tu remplaces la dernière ligne du script par :

/usr/bin/sed '1,/^$/d' <&0 | /usr/bin/nail -r "$from" -- $@


Ah ben voilà, avec ça, je peux faire ce que je veux... ça va faire un
sendmail batard, mais j'aurai ce que je voudrai au moins ;-)

Oui, mais c'est quand même des services très légers, pas des usines à gaz
comme postfix. Mais je peux comprendre ton choix de ne pas vouloir en
installer. :)


Et je t'en remercie ;-)

--
Christophe PEREZ
Écrivez moi sans _faute !


Avatar
Christophe PEREZ
Le Mon, 08 Nov 2004 22:52:51 -0400, Christophe PEREZ a écrit:

Donc c'est bien dans le corps que l'on retrouve des entêtes... bizarre
non ?


Et ne serait-ce pas à cause de cette ligne dans les entêtes qui fait
croire que le reste fait partie du corps ?
Reste encore à trouver ce qui rajoute cette ligne vide (et ce deuxième
From )...

--
Christophe PEREZ
Écrivez moi sans _faute !

1 2 3