#1 Le 12/08/2013, à 16:43
- bobdocland
Script shell changer de nom de machine
Bonjour à tous,
J'ai crée un liveCD personnalisé qui va me permettre d'utiliser ubuntu sur des machines lorsque leurs utilisateurs n'en n'ont pas besoin, le but est d'utilisé les ressources de ces machines via le réseau.
J'aurais besoin de crée une image ISO "gravable" et utilisable (via liveCD) sur plusieurs machines différentes seulement il faudra que chaque machine ait un nom différent, incrémenté ou autre, mais unique pour pouvoir être différenciée sur le réseau.
Je pensais récupérer l'adresse IP (alloué automatiquement par un serveur) et l'ajouter dans le nom de la machine. Ce qui serait parfait pour les identifier.
Ainsi mon liveCD donnera à la machine le nom de base par exemple: "machine_test" et le script ajoutera l'adresse ou une partie de l'adresse à la suite de ce nom. (ex: "machine_test_192.168.1.15")
Il faudrait donc que mon script modifie les fichiers /etc/hostname et /etc/hosts je crois que c'est tout.
Pour l'instant j'ai juste la commande pour récupérer l'adresse IP ou la plutôt la partie qui m'intéresse
ifconfig eth0 | grep "inet ad" | cut -f2 -d: | cut -f3-4 -d. | tr '.' '_' | cut -f1 -d" "
J'arrive a récupéré ce que je veux (2 derniers octets de l'@IP) et je pensais simplement utiliser :
ma_commande >> /etc/hostname
Pour ajouter mon adresse IP, cela ajoute bien ce que j'ai récupéré mais ça le met à la ligne et tout bêtement je vois pas comment l'ajouter directement à la suite du hostname déjà présent en faisant une commande simple.
Il faudra aussi que je modifie le fichier /etc/hosts et donc que je détecte et remplace l'hostname précédent pour le remplacer par le nouveau (avec adresse IP incluse) si vous avez aussi des idées ou conseils à ce niveau là je suis preneur.
Désolé ce sont vraiment des questions simple je pense mais je suis vraiment mauvais en shell etc... :s
Petit précision j'utilise une vm pour ensuite crée l'image ISO personnalisé (via remastersys) et certaines chose n'ont pas l'air de fonctionné comme : hostname -i qui me renvoi l'adresse de boucle locale 127.0.0.1.
Merci et bonne journée
--
BoB
Hors ligne
#2 Le 12/08/2013, à 17:08
- Shanx
Re : Script shell changer de nom de machine
Salut.
Si myip est la variable contenant les deux derniers octets, tu peux faire comme ça :
read -r hname</etc/hostname
echo $hanme$myip > /etc/hostname
Dernière modification par Shanx (Le 12/08/2013, à 17:10)
Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied
Hors ligne
#3 Le 13/08/2013, à 09:00
- bobdocland
Re : Script shell changer de nom de machine
Salut,
Merci beaucoup c'est parfait.
Juste au cas ou cela puisse servir à quelqu'un un jour ^^ j'ai fait ça:
(pour affecter la valeur dans la variable)
myip=`ifconfig eth0 | grep "inet ad" | cut -f2 -d: | cut -f3-4 -d. | tr '.' '_' | cut -f1 -d" "`
Puis ce que m'a proposé Shanx:
read -r hname < /etc/hostname
echo $hanme-$myip > /etc/hostname
Résultat :
hostname
ma_machine-mon_ip
Merci je vais voir comment modifier le fichier hosts maintenant ce qui va être un peu plus "embêtant" je pense.
Ciao.
--
BoB
Hors ligne
#4 Le 13/08/2013, à 09:50
- Shanx
Re : Script shell changer de nom de machine
Merci je vais voir comment modifier le fichier hosts maintenant ce qui va être un peu plus "embêtant" je pense.
Tout dépend. Tu veux mettre quoi dans /etc/hosts ? Si tu veux simplement mettre l’ordinateur local, c’est tout aussi facile. Si tu veux mettre tous les ordis du réseau, ça va être un peu plus délicat.
Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied
Hors ligne
#5 Le 13/08/2013, à 15:35
- bobdocland
Re : Script shell changer de nom de machine
Salut,
Je met aussi les postes du réseau, j'ai réussi à faire plus ou moins ce que je voulais en plaçant la partie à modifier en première ligne du fichier /etc/hosts.
Et en utilisant sed -e etc...
Par contre je rencontre d'autres problème au niveau de la création de l'image ISO avec remastersys etc..
J'irais demander des conseils du côté de mon post précédent dans la rubrique approprié si je n'arrive pas à résoudre ce problème (ici)
Merci et bonne journée
--
BoB
Hors ligne