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

Encodage caracteres dans scripts "periodic"

4 réponses
Avatar
xavier
Bonjour,

Certains de mes scripts periodic font appel à des programmes externes
qui peuvent émettre de l'UTF-8.

Si je les appelle à la main, ces caractères apparaissent correctement
dans mon terminal paramétré en UTF-8. Par contre, le mécanisme standard
de periodic(8) est de piper la sortie dans mail(1) qui ne met pas
d'entête Content-Type, et le résultat dans mon mailer est moche.
mail.rc ne permet pas de paramétrer ceci, sauf erreur.

Existe-t-il une autre solution que d'expédier le message séparément, en
construisant mes entêtes et en envoyant le tout à sendmail -ti ?

Merci,

--
XAv
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
(Jethro Tull)

4 réponses

Avatar
patpro ~ patrick proniewski
In article <1jysj79.1hn5ua31mx3fswN%,
(Xavier) wrote:

Bonjour,

Certains de mes scripts periodic font appel à des programmes externes
qui peuvent émettre de l'UTF-8.

Si je les appelle à la main, ces caractères apparaissent correctement
dans mon terminal paramétré en UTF-8. Par contre, le mécanisme standard
de periodic(8) est de piper la sortie dans mail(1) qui ne met pas
d'entête Content-Type, et le résultat dans mon mailer est moche.
mail.rc ne permet pas de paramétrer ceci, sauf erreur.

Existe-t-il une autre solution que d'expédier le message séparément, en
construisant mes entêtes et en envoyant le tout à sendmail -ti ?



et tu ne peux pas modifier /etc/crontab pour ajouter un pipe et la
commande qui te convient en bout de ligne ?

patpro

--
A vendre : KVM IP 16 ports APC
http://patpro.net/blog/index.php/2008/01/12/133
Avatar
xavier
patpro ~ patrick proniewski wrote:

et tu ne peux pas modifier /etc/crontab pour ajouter un pipe et la
commande qui te convient en bout de ligne ?



Ce n'est pas crontab, enfin si, mais il appelle /sbin/periodic, un
script shell qui redirige sa sortie selon la config lue dans
/etc/periodic.conf

Donc, ça ne serait pas différent de ma solution qui consiste à envoyer
moi même le mail, et retourner 0 à /sbin/periodic pour lui dire de ne
pas traiter la sortie de ce script. Ca serait même plus compliqué.

La "bonne" solution serait de patcher periodic, pour lui faire utiliser
sendmail -ti au lieu de mail. Encore mieux, patcher mail pour qu'il
accepte une option "rajouter telle entête". Mais bon, modifier le
fonctionnement d'un outil ultra standard, pas top non plus.

--
XAv
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
(Jethro Tull)
Avatar
xavier
patpro ~ patrick proniewski wrote:

hmmm, ok, j'ignorais. bonne chance alors :)



/usr/sbin/periodic (et non pas /sbin/periodic, come indiqué par erreur)
est structuré ainsi :

[...]
case "$output" in
/*) pipe="cat >>$output";;
"") pipeÊt;;
*) pipe="mail -E -s '$host ${arg##*/} run output' $output";;
[...]
{
[...execution de /etc/periodic/whatever/*...]
} | eval $pipe

C'est d'ailleurs un élégant exemple d'école de l'utilisation de `eval`

Bon, maintenant, j'ai un peu de mal à voir comment je pourrais insérer
des entêtes (lus dans un fichier de conf, bien entendu) avant le stdout
envoyé à "eval pipe" pour remplacer mail -s etc... par sendmail -ti

Faudrait touiller tout le bloc "{} | eval $pipe" pour utiliser
probablement un fichier temporaire inconditionnellement, ce qui, j'ai
l'impression, n'est fait que dans le cas pipe="cat >>$output";;

Y'a quequ'chose qui cloch' là d'dans, j'y retourn' immédiatement !

--
XAv
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
(Jethro Tull)
Avatar
patpro ~ patrick proniewski
In article <1jysm70.162dbk3f7q2omN%,
(Xavier) wrote:

patpro ~ patrick proniewski wrote:

> et tu ne peux pas modifier /etc/crontab pour ajouter un pipe et la
> commande qui te convient en bout de ligne ?

Ce n'est pas crontab, enfin si, mais il appelle /sbin/periodic, un
script shell qui redirige sa sortie selon la config lue dans
/etc/periodic.conf



hmmm, ok, j'ignorais. bonne chance alors :)

patpro

--
A vendre : KVM IP 16 ports APC
http://patpro.net/blog/index.php/2008/01/12/133