OVH Cloud OVH Cloud

[LOCALHOST]Nom de la machine

11 réponses
Avatar
pamaloha
Bonjour,

Je n'arrive pas à changer le nom de ma machine...
SVP, prêter une ou plusieurs idées, merci par avance.

J'ai essayé avec /etc/hosts, mais il ne prend pas en compte le nom spécifié:

[root@Vigor3 pat]# cat /etc/hosts
127.0.0.1 localhost mandarin

J'ai essayé avec /etc/sysconfig/network, rien à faire, même après un
redémarrage du réseau ("/etc/rc.d/init.d/network restart"):

[root@Vigor3 pat]# cat /etc/sysconfig/network
NETWORKING=yes
GATEWAY=192.168.1.1
HOSTNAME=MANDARIN.
[root@Vigor3 pat]#

J'ai essayé de forcer la variable d'environnement HOSTNAME dans
"~/.bashrc", ça ne marche pas non plus (sauf lancé dans un terminal,
mais seulement pour la session en cours):

[root@Vigor3 pat]# cat /home/pat/.bashrc
# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
HOSTNAME="mandarin"
export HOSTNAME
[root@Vigor3 pat]#

Merci pour vos conseils...
Patrick Hautrive
hautrive@free.fr

--
Pour contacter l'équipe de modération : moderateurs-fcolm@efrei.fr
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.

10 réponses

1 2
Avatar
Antoine Bellot
pamaloha a écrit:
Bonjour,

Je n'arrive pas à changer le nom de ma machine...
SVP, prêter une ou plusieurs idées, merci par avance.



La commande hostname(1) est certainement ce que tu cherches,
puisqu'après un coup d'oeil rapide sur une machine Linux Redhat :

# grep -rE ' $HOSTNAME' /etc/*
/etc/sysconfig/network-scripts/ifup-post: set_hostname $HOSTNAME
# grep -rEA5 'set_hostname ()' /etc/*
/etc/sysconfig/network-scripts/network-functions:set_hostname ()
/etc/sysconfig/network-scripts/network-functions-{
/etc/sysconfig/network-scripts/network-functions- hostname $1
/etc/sysconfig/network-scripts/network-functions- if ! grep search
/etc/resolv.conf >/dev/null 2>&1; then
/etc/sysconfig/network-scripts/network-functions- domain=`echo $1
| sed 's/^[^.]*.//'`
/etc/sysconfig/network-scripts/network-functions- echo "search
$domain" >> /etc/resolv.conf
[ ab]#

Si tel n'est pas le cas, je te conseille de jeter un oeil à :

http://www.die.net/doc/linux/man/man1/dnsdomainname.1.html

Attention cependant : si tu utilises hostname, de nombreuses
applications que ne s'attendent pas à ce que le nom d'hôte d'une machine
puissent changer pendant leur execution de se mettre à mal fonctionner.



--
Antoine Bellot
"Debugging is twice as hard as writing the code
in the first place. If you write the code as cleverly
as possible, you are, by definition, not smart enough
to debug it." - Brian W. Kernighan

--
Pour contacter l'équipe de modération :
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Avatar
antoine.bellot
pamaloha a écrit:
Bonjour,

Je n'arrive pas à changer le nom de ma machine...
SVP, prêter une ou plusieurs idées, merci par avance.



La commande hostname(1) est certainement ce que tu cherches,
puisqu'après un coup d'oeil rapide sur une machine Linux Redhat :

# grep -rE ' $HOSTNAME' /etc/*
/etc/sysconfig/network-scripts/ifup-post: set_hostname $HOSTNAME
# grep -rEA5 'set_hostname ()' /etc/*
/etc/sysconfig/network-scripts/network-functions:set_hostname ()
/etc/sysconfig/network-scripts/network-functions-{
/etc/sysconfig/network-scripts/network-functions- hostname $1
/etc/sysconfig/network-scripts/network-functions- if ! grep search
/etc/resolv.conf >/dev/null 2>&1; then
/etc/sysconfig/network-scripts/network-functions- domain=`echo $1
| sed 's/^[^.]*.//'`
/etc/sysconfig/network-scripts/network-functions- echo "search
$domain" >> /etc/resolv.conf
[ ab]#

Si tel n'est pas le cas, je te conseille de jeter un oeil à :

http://www.die.net/doc/linux/man/man1/dnsdomainname.1.html

Attention cependant : si tu utilises hostname, de nombreuses
applications que ne s'attendent pas à ce que le nom d'hôte d'une machine
puisse changer pendant leur execution risquent de se mettre à mal
fonctionner.

--
Pour contacter l'équipe de modération :
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Avatar
Robert CHERAMY
pamaloha wrote:
Je n'arrive pas à changer le nom de ma machine...
SVP, prêter une ou plusieurs idées, merci par avance.



J'ai essayé avec /etc/hosts, mais il ne prend pas en compte le nom



J'ai essayé avec /etc/sysconfig/network, rien à faire, même après un



J'ai essayé de forcer la variable d'environnement HOSTNAME dans



Il faut tout changer partout ;-)
Essayez donc un
grep $HOSTNAME /etc
(voir un grep -r pour inclure les sous répertoires, et sans avoir forcé
$HOSTNAME bien sûr).

Hint : dans /etc, il y a un fichier nommé 'hostname'
--
Robert CHERAMY <http://robert.cheramy.net/>
Hi! I'm a .signature virus! Copy me into your ~/.signature, please!

--
Pour contacter l'équipe de modération :
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Avatar
Etienne de Tocqueville
pamaloha a écrit sur fr.comp.os.linux.moderated :

[ pat]# cat /etc/sysconfig/network
NETWORKING=yes
GATEWAY2.168.1.1
HOSTNAME=MANDARIN.



Pourquoi en majuscule, et surtout pourquoi ce point à la fin ?

Sinon, il faut bien faire cela, et ce sera pris en compte au prochain
reboot. Pour que ça soit pris en compte immédiatement, il faut taper
sous root :

# hostname mandarin

--
Pour contacter l'équipe de modération :
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Avatar
pamaloha
Etienne de Tocqueville wrote:
pamaloha a écrit sur fr.comp.os.linux.moderated :


[ pat]# cat /etc/sysconfig/network
NETWORKING=yes
GATEWAY2.168.1.1
HOSTNAME=MANDARIN.




Pourquoi en majuscule, et surtout pourquoi ce point à la fin ?



Un point pour spécifier qu'il y a un nom de domaine qui suit
(MANDARIN.GLOB.FR)
Sinon, il faut bien faire cela, et ce sera pris en compte au prochain
reboot. Pour que ça soit pris en compte immédiatement, il faut taper
sous root :

# hostname mandarin



Merci, mais:
Cette commande marche, mais le nom ne change pas...

--
Pour contacter l'équipe de modération :
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Avatar
pamaloha
Robert CHERAMY wrote:
pamaloha wrote:

Je n'arrive pas à changer le nom de ma machine...
SVP, prêter une ou plusieurs idées, merci par avance.





J'ai essayé avec /etc/hosts, mais il ne prend pas en compte le nom




J'ai essayé avec /etc/sysconfig/network, rien à faire, même après un




J'ai essayé de forcer la variable d'environnement HOSTNAME dans




Il faut tout changer partout ;-)
Essayez donc un
grep $HOSTNAME /etc
(voir un grep -r pour inclure les sous répertoires, et sans avoir forcé
$HOSTNAME bien sûr).


Merci, mais:
Seuleument le fichier "/etc/hosts" ressort de ctte commande...

Hint : dans /etc, il y a un fichier nommé 'hostname'



Dans /etc il y un fichier "/etc/hosts"

--
Pour contacter l'équipe de modération :
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Avatar
Gilles Magnier
pamaloha wrote:
Bonjour,



Bonjour,
Je n'arrive pas à changer le nom de ma machine...
SVP, prêter une ou plusieurs idées, merci par avance.




Alors en supposant que tu es sur une distrib typé redhat.
Pour changer le nom de la machine il faut juste
modifier /etc/sysconfig/network
en changant le paramètre HOSTNAME.

Maintenant tout les logiciels n'utilisent pas la variable
d'environnement hostname pour connaitre le nom d'hote
de la machine locale. Certains cherchent la résolution inverse
de 127.0.0.1.

hors d'apres le contenu de ton fichier /etc/hosts
127.0.0.1 est résolu en "localhost" (le premier nom de la ligne).

Donc si tu souhaite que ta machine se nomme mandarin.glob.fr tu doit :

- modifier /etc/sysconfig/network
en passant HOSTNAME="mandarin.glob.fr"
- modifier /etc/hosts ainsi :

127.0.0.1 mandarin.glob.fr mandarin localhost localhost.localdomain

enfin un "service network restart" devrait appliquer ces changements
(encore que les programme démarés avant continuerons d'avoir l'ancien nom)

Cordialement,

Gilles.

--
Pour contacter l'équipe de modération :
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Avatar
dolordo
pamaloha wrote:

Bonjour,

Je n'arrive pas à changer le nom de ma machine...
SVP, prêter une ou plusieurs idées, merci par avance.

J'ai essayé avec /etc/hosts, mais il ne prend pas en compte le nom
spécifié:

[ pat]# cat /etc/hosts
127.0.0.1 localhost mandarin



Essaye :
127.0.0.1 localhost
ton.ip.que.tuveux mandarin.glob.fr mandarin

[SNIP]

--
Pour contacter l'équipe de modération :
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Avatar
Hugues Hiegel
Ce cher pamaloha a dit :


[ pat]# cat /etc/hosts
127.0.0.1 localhost mandarin



Ce fichier sert seulement a la resolution noms <--> adresses IP lors
de l'utilisation de n'importe quel programme "internet"
il n'influe en aucun cas le nom "reel" de ta machine.

J'ai essayé avec /etc/sysconfig/network, rien à faire, même après un
redémarrage du réseau ("/etc/rc.d/init.d/network restart"):

[ pat]# cat /etc/sysconfig/network
NETWORKING=yes
GATEWAY2.168.1.1
HOSTNAME=MANDARIN.
[ pat]#



et si tu executes ton shell par dessus celui en cours, ca donne quoi ?

car regarde :

(pts/2) ~ > hostname
marvin
(pts/2) ~ > sudo hostname pouet
Password:
(pts/2) ~ > hostname
pouet
(pts/2) ~ > zsh
(pts/2) ~ > x
(pts/2) ~ >


ce qui se passe, c'est que ton shell lit une bonne fois pour toutes
ton fichier de config, notamment en ce qui concerne le prompt. celui
ci prend alors en _une seule fois_ le nom de ta machine. si tu le
changes apres coup, ca ne change rien, il faut que tu resettes ta
variable PROMPT carrément, et non pas seulement HOSTNAME.
regarde un peu dans ton ~/.bashrc par exemple..

J'ai essayé de forcer la variable d'environnement HOSTNAME dans
"~/.bashrc", ça ne marche pas non plus (sauf lancé dans un terminal,
mais seulement pour la session en cours):



une variable d'environnement ne correspond certainement pas a un
parametre du systeme. Or, le nom de ta machine est bien un "parametre
systeme" qui est utilise pour donne une valeur a ta variable HOSTNAME,
et non pas l'inverse.

[ pat]# cat /home/pat/.bashrc
# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
HOSTNAME="mandarin"
export HOSTNAME
[ pat]#



comme je l'ai dit, $HOSTNAME n'est pas pris en compte ici. Mais
$PROMPT (ou $PS1, ca depend..)




voici "une" solution :

tu remarqueras qu'au demarrage de ta machine, il y a une ligne du
style:

Setting hostname to marvin

Or... :

# egrep -ri "hostname" /etc/*
hostname.sh:# hostname.sh Set hostname.
hostname.sh:# Version: @(#)hostname.sh 1.10 26-Feb-2001
hostname.sh:if [ -f /etc/hostname ]
hostname.sh: hostname --file /etc/hostname
# cat /etc/hostname
marvin
#


c'est aussi simple que ca..
et pour etre sur que tout marche bien, un petit coup de init 1 suivi
de init 5 ne ferait de mal a personne :)

--
Life! Don't talk to me about life.
-+ Marvin +-

--
Pour contacter l'équipe de modération :
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Avatar
Hugues Hiegel
En me relisant, je constate une grossiere erreur dans ton script :

Ce cher Hugues Hiegel a dit :

Ce cher pamaloha a dit :

[ pat]# cat /home/pat/.bashrc
# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
HOSTNAME="mandarin"
export HOSTNAME





Ca, ca devrait figurer _avant_ l'appel de /etc/bashrc !
puisque ce fichier fait appel lui meme a $HOSTNAME...

Mais ca ne resoud certes pas du tout ton probleme initial :)

[ pat]#



comme je l'ai dit, $HOSTNAME n'est pas pris en compte ici. Mais
$PROMPT (ou $PS1, ca depend..)



en gros, ton prompt il ressemble a ca :

export PS1="[${USER}@${HOSTNAME} %~]%$"

(si je me souviens de la syntaxe de bash concernant les variables
prompt telles que %~ et %$..)
mais ce qui nous interesse ici, c'est l'appel a ${HOSTNAME}..

voila voila...

--
Life! Don't talk to me about life.
-+ Marvin +-

--
Pour contacter l'équipe de modération :
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
1 2