locale avec cron

Le
Alarch
Bonjour,

le problème me semblait tout bête mais je ne trouve nulle part une solution
qui marche.

Je lance un script en local, il me remplit mon log en utilisant mes locales
c-à-d fr_FR.UTF-8, je le lance dans le cron de mon utilisateur il n'a plus
de langue définie et m'écrit les dates en anglais. J'essaye d'exporter
LC_ALL="fr_FR.UTF-8" avant de lancer mon script dans la ligne cron :
8 0 * * 0 export LC_ALL="fr_FR.UTF-8";/opt/backup/scripts/svg.sh

mais ça ne marche pas j'ai :

+--+
Année : 2009 Semaine : 44
Fin de la sauvegarde quotidienne rsync du mercredi 28 octobre 2009
+--+

en interactif et :


+--+
Année : 2009 Semaine : 44
Fin de la sauvegarde quotidienne rsync du Wednesday 28 October 2009
+--+

avec cron. Comment faire prendre en compte la langue par cron ?

Merci de votre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Lucas Levrel
Le #20447101
Le 28 octobre 2009, Alarch a écrit :

Je lance un script en local, il me remplit mon log en utilisant mes locales
c-à-d fr_FR.UTF-8, je le lance dans le cron de mon utilisateur il n'a plus
de langue définie et m'écrit les dates en anglais. J'essaye d'exporter
LC_ALL="fr_FR.UTF-8" avant de lancer mon script dans la ligne cron :
8 0 * * 0 export LC_ALL="fr_FR.UTF-8";/opt/backup/scripts/svg.sh



Qu'obtiens-tu avec echo $LC_ALL dans svg.sh ?

Tu pourrais passer la locale en argument de ton script, peut-être ?

--
LL
Benoit Izac
Le #20447661
Bonjour,

le 28/10/2009 à 20:13, Alarch message
Je lance un script en local, il me remplit mon log en utilisant mes locales
c-à-d fr_FR.UTF-8, je le lance dans le cron de mon utilisateur il n'a plus
de langue définie et m'écrit les dates en anglais. J'essaye d'exporter
LC_ALL="fr_FR.UTF-8" avant de lancer mon script dans la ligne cron :
8 0 * * 0 export LC_ALL="fr_FR.UTF-8";/opt/backup/scripts/svg.sh



De quel cron s'agit-il (vixie-cron, bcron, dcron, fcron, ...) ?

--
Benoit Izac
Alarch
Le #20448081
Benoit Izac wrote:

Bonjour,

le 28/10/2009 à 20:13, Alarch message
Je lance un script en local, il me remplit mon log en utilisant mes
locales c-à-d fr_FR.UTF-8, je le lance dans le cron de mon utilisateur il
n'a plus de langue définie et m'écrit les dates en anglais. J'essaye
d'exporter LC_ALL="fr_FR.UTF-8" avant de lancer mon script dans la ligne
cron : 8 0 * * 0 export LC_ALL="fr_FR.UTF-8";/opt/backup/scripts/svg.sh



De quel cron s'agit-il (vixie-cron, bcron, dcron, fcron, ...) ?



Ah oui bonne question, visiblement dans debian lenny le paquet cron fournit
bcron alors que je croyais que c'était vixie... sur gentoo le choix était
explicite.
Alarch
Le #20448181
Lucas Levrel wrote:

Le 28 octobre 2009, Alarch a écrit :

Je lance un script en local, il me remplit mon log en utilisant mes
locales c-à-d fr_FR.UTF-8, je le lance dans le cron de mon utilisateur il
n'a plus de langue définie et m'écrit les dates en anglais. J'essaye
d'exporter LC_ALL="fr_FR.UTF-8" avant de lancer mon script dans la ligne
cron : 8 0 * * 0 export LC_ALL="fr_FR.UTF-8";/opt/backup/scripts/svg.sh



Qu'obtiens-tu avec echo $LC_ALL dans svg.sh ?



rien du tout LC_ALL n'est tout simplement pas défini...

Tu pourrais passer la locale en argument de ton script, peut-être ?



Ah... alors là je ne comprends plus, j'ai fait une bourde dans mes tests
l'autre jour visiblement, car maintenant si je place dans mon script avant
mes écritures de log :
export LC_ALL="fr_FR.UTF-8"
ça fonctionne... C'est donc tout bête... il me semblait avoir testé ça de
suite et voyant que ça ne marchait pas j'ai commencé à chercher des choses
compliquées...
Navré du dérangement.

Du coup je mets le bout de code qui marche si jamais ça peut servir à
quelqu'un qui se poserait la même question bête.

#! /bin/bash

export LC_ALL="fr_FR.UTF-8"
echo "LC_ALL après exportation : $LC_ALL"
echo " Année $(date +%Y) semaine $(date +%V). Sauvegarde rsync du
$(date '+%A %d %B %Y') jour dans la semaine : $(date +%w)"
Dominique MICOLLET
Le #20448271
Alarch wrote:

Lucas Levrel wrote:
Ah... alors là je ne comprends plus, j'ai fait une bourde dans mes tests
l'autre jour visiblement, car maintenant si je place dans mon script avant
mes écritures de log :
export LC_ALL="fr_FR.UTF-8"
ça fonctionne...



Vous aviez peut-être oublié le export ?

Si l'on veut s'en passer, il convient d'écrire :

LC_ALL="fr_FR.UTF-8 echo .....

La locale n'est alors définie que pour la commande echo

--
Dominique MICOLLET
Adresse email : enlever deux francs
Benoit Izac
Le #20448481
Bonjour,

le 29/10/2009 à 16:27, Alarch message
Je lance un script en local, il me remplit mon log en utilisant mes
locales c-à-d fr_FR.UTF-8, je le lance dans le cron de mon utilisateur il
n'a plus de langue définie et m'écrit les dates en anglais. J'essaye
d'exporter LC_ALL="fr_FR.UTF-8" avant de lancer mon script dans la ligne
cron : 8 0 * * 0 export LC_ALL="fr_FR.UTF-8";/opt/backup/scripts/svg.sh



De quel cron s'agit-il (vixie-cron, bcron, dcron, fcron, ...) ?



Ah oui bonne question, visiblement dans debian lenny le paquet cron fournit
bcron alors que je croyais que c'était vixie... sur gentoo le choix était
explicite.



Selon la page de manuel :

| Note that comments are not allowed on the same line as cron commands,
| since they will be taken to be part of the command. Similarly, com‐
| ments are not allowed on the same line as environment variable set‐
| tings.

Mets « LC_ALL="fr_FR.UTF-8" » sur une seule ligne dans ta crontab.

--
Benoit Izac
Benoit Izac
Le #20448641
Bonjour,

le 29/10/2009 à 16:45, Alarch message
#! /bin/bash

export LC_ALL="fr_FR.UTF-8"
echo "LC_ALL après exportation : $LC_ALL"
echo " Année $(date +%Y) semaine $(date +%V). Sauvegarde rsync du
$(date '+%A %d %B %Y') jour dans la semaine : $(date +%w)"



Note que, dans ton cas, modifier LC_TIME suffit.

--
Benoit Izac
Alarch
Le #20486591
Dominique MICOLLET wrote:

Alarch wrote:

Lucas Levrel wrote:
Ah... alors là je ne comprends plus, j'ai fait une bourde dans mes tests
l'autre jour visiblement, car maintenant si je place dans mon script
avant mes écritures de log :
export LC_ALL="fr_FR.UTF-8"
ça fonctionne...



Vous aviez peut-être oublié le export ?

Si l'on veut s'en passer, il convient d'écrire :

LC_ALL="fr_FR.UTF-8 echo .....

La locale n'est alors définie que pour la commande echo



Je ne connaissais pas cette astuce. En fait l'autre jour j'ai fait tellement
de tests qu'il est possible que j'ai effacé le export ou quelque chose de
ce genre. Et une fois qu'on est obnubilé par un problème on a du mal à voir
le grosse bêtise qui crève les yeux...
Publicité
Poster une réponse
Anonyme