Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
locales reconfigurées et scripts inopérants
Envoyé par: |/|BaH

Bonjour à toutes et tous

Le titre peut prêté à confusion, alors je m'explique :

Lors de l'installation de Debian, je n'avais pas configuré les locales, tout marchait très bien. J'avais placé des scripts dans /etc/init.d/, d'autres étaient lancés depuis /etc/network/interfaces, tout marchait très bien.

Utilisant fréquemment ssh pour communiquer avec cette machine, j'en ai eu assez d'avoir des points d'interrogation dans des losanges au lieu de caractères accentués, j'ai donc fait un 'dpkg-reconfigure locales'...

1- ça n'a rien changé (ça, à la rigueur je m'y suis habitué, c'est pas la cata...)
2- le Disconnect Idle Virtual-terminal Automatically, que j'ai écrit ne fonctionne plus (c'est lui qui est dans /etc/init.d)
3- juste une ligne d'un script censé mettre à jour /etc/hosts empêche la bonne configuration d'IpTables
ifconfig eth0 | grep 'inet adr' | cut -d: -f2 | awk '{ print $1 "nom_serveur.dom alias" }' > /etc/hosts # ça, ça marche plus
echo "blabla..." >> /etc/hosts # ça, ça marche


Vous avez une idée, ou plus...?


Par avance, merci.

Poste le Thursday 20 March 2008 14:46:20
Répondre     Citer    
Re: locales reconfigurées et scripts inopérants

Peut-être ajouter au début du script:
export LANG=C; export LC_ALL=C

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Thursday 20 March 2008 14:50:28
Répondre     Citer    
Re: locales reconfigurées et scripts inopérants
Envoyé par: oudoubah

Un petit lien qui pourra t'être utile :
[lea-linux.org]

Pour les locales, afin que tout le système le prenne bien en compte, j'aurais tendance à préconiser le reboot.

Pour récupérer l'adresse IP, il y a peut être beaucoup plus simple.
Si elle est stockée sur debian dans le fichier /etc/sysconfig/network-scripts/ifcfg-eth0 (ou un autre fichier ne contenant que des commentaires #.... ou des lignes de la forme VAR=XXXXX), tu peux simplement faire un source /etc/sysconfig/network-scripts/ifcfg-eth0
Tu récupères ton adresse avec un simple echo $IPADDR.
Donc ta ligne avec le awk devient
echo "$IPADDR nom.du.serveur"

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Thursday 20 March 2008 15:57:53
Répondre     Citer    
Re: locales reconfigurées et scripts inopérants

Non, faire un grep dans un fichier de configuration est une mauvaise idée. Ce fichier est sous Debian /etc/network/interfaces pour toutes les interfaces réseaux (= cartes ethernet à peu près), il n'y a pas de fichier /etc/sysconfig/network-scripts/ifcfg-eth0 propre à chaque interface.

C'est une mauvaise idée de chercher dans les fichiers de configuration, car il est plus utile d'interroger le système sur ce que sont les interfaces (actives) à ce moment là que sur ce qu'elles devraient être.

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Thursday 20 March 2008 17:48:51
Répondre     Citer    
Re: locales reconfigurées et scripts inopérants
Envoyé par: |/|BaH

Disposant d'une adresse dynamique qui "saute" de manière inopinée, je trouvais plus opportun de demander (soit au (re)démarrage du système, soit lors d'un redémarrage des interfaces réseau) l'adresse IP publique attribuée par le DHCP de la FAI-box, lorsque je réinitialise cettte dernière, pour mettre à jour le(s) fichier(s) qui s'en ser(ven)t (i.e. /etc/hosts).

Sinon, insérer des 'export' pour définir les locales dans les scripts les rend à nouveau opérants.

Merci

Poste le Thursday 20 March 2008 22:24:07
Répondre     Citer    
Re: locales reconfigurées et scripts inopérants
Envoyé par: oudoubah

Citation
Basile STARYNKEVITCH
C'est une mauvaise idée de chercher dans les
fichiers de configuration, car il est plus utile
d'interroger le système sur ce que sont les
interfaces (actives) à ce moment là que sur ce
qu'elles devraient être.

Les fichiers de configuration sont là également pour savoir comment la machine est configurée.
Généralement, on ne s'amuse pas à brancher un câble réseau une fois sur eth0, une fois sur eth1. Il peut être parfois beaucoup plus performant et beaucoup plus pratique d'aller chercher les informations à la racine même plutôt que de passer par des outils. Tout dépend de comment l'information est stockée.

Dans le cas d'un dhcp, c'est peut être plus "facile" de passer par ifconfig (sinon, il faut chercher dans quel fichier l'adresse est stockée). Sinon, un simple awk suffit à récupérer l'IP, et ce n'est pas plus compliqué que d'utiliser plusieurs commandes séparées par des tubes.

Si c'est pour configurer iptables, créer les règles avant de monter l'interface n'est pas une mauvaise chose.

|/|BaH : Et si tu recopies (à la main, ou par une copie via un éditeur de texte) ton script, as-tu besoin de rajouter les export? Si tu fais un file mon_script, qu'est-ce qu'il renvoit (Le but : voir si le fichier porte en lui l'encodage).

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Friday 21 March 2008 12:20:41
Répondre     Citer    
Re: locales reconfigurées et scripts inopérants
Envoyé par: |/|BaH

Citation
Oudoubah
Dans le cas d'un dhcp, c'est peut être plus "facile" de passer par ifconfig (sinon, il faut chercher dans quel fichier l'adresse est stockée).
Effectivement, je serais curieux de savoir où le client DHCP stocke ces infos...

Citation
Oudoubah
Si c'est pour configurer iptables, créer les règles avant de monter l'interface n'est pas une mauvaise chose.
Les règles IPTables sont créées par un script lancé lors du montage de l'interface eth0, via un 'up' dans /etc/network/interfaces.
En l'occurence, j'ai des règles NAT basées sur des IP, dont celle de la machine,
addrPassrel=$(le blabla plus haut)
addrPostIntercalé=192.168.1.60

/sbin/iptables -t nat -A PREROUTING -i eth0 -d $addrPassrel -p tcp --destination-port 80 -j DNAT --to-destination  192.168.2.60:80 
/sbin/iptables -t nat -A PREROUTING -i eth0 -s $addrPostIntercalé -d $addrPassrel -p tcp --destination-port 21 -j DNAT --to-destination 192.168.2.60:21
ce qui fait que si l'adresse attribuée par la FAI-Box change, ces règles ne sont plus valables (c'est d'ailleurs, en général, à ça que je m'aperçois qu'elle a sauté).

Sinon, 'file scripts.sh' renvoie "Bourne-Again shell script text executable", avec 'export' ou sans.
Mais, le problème n'était pas qu'ils soient inopérants quand je les lance à la main (ainsi ils fonctionnaient encore), mais qu'ils le soient (parfois en partie seulement) quand ils étaient lancés automatiquement après modification des locales.

Poste le Friday 21 March 2008 18:32:10
Répondre     Citer    
Re: locales reconfigurées et scripts inopérants

Je viens de voir sur comp.unix.shell, qu'il est possible de définir "la locale" d'une commande ainsi :
LC_ALL=C commande
Ce qui, dans mon cas, permet de "stabiliser" la sortie de ifconfig dans une langue sans faire d'`export` :
LC_ALL=C ifconfig | grep "inet "

          inet addr:192.168.1.67  Bcast:192.168.1.255  Mask:255.255.255.0
          inet addr:127.0.0.1  Mask:255.0.0.0
¿ Cette commande, même lancée dans une console, ne modifie pas vraiment les locales !

Poste le Thursday 9 October 2008 03:00:41
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
locales reconfigurées et scripts inopérants
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons