Bonsoir
@Guismo
Une adresse IPv4 est composée de 4 octets.
Un octet, en décimal peut avoir une valeur sur 3 chiffres
prendre seulement les deux derniers ne suffirait pas.
Tu avais écrit
dans ce fil de discussion que tu avais 2 réseaux,
et dans ces deux réseaux, il pourrait très bien exister
des adresses IP dont le dernier octet est le même.
Pour pouvoir les différencier vraiment,
il faudra donc tenir compte des deux derniers octets.
=======
Ci-dessous, le script à exécuter
avec les privilèges du compte
root de et sur chacune des machines.
#!/bin/bash
# Pour changer le nom de machine en y ajoutant
# les deux derniers octets de l'adresse IP de la machine
# précédés par le caractère '-'
lastHostname=$(hostname)
ipAdresses=( $(hostname -I) )
toAdd=$(awk -F. '{printf "-"$3"-"$4}' <<< ${ipAdresses[1]})
newHostname=$lastHostname$toAdd
# Pour remplacer le nom de machine dans le fichier '/etc/hosts'
sed -i "s/$lastHostname/$newHostname/g" /etc/hosts
# Pour remplacer le nom de machine dans le fichier '/etc/hostname'
echo "$newHostname" > /etc/hostname
=======
EDIT :
La ligne de commande '
hostname -I' retourne l'adresse IP en y ajoutant un caractère espace à la fin (vacherie !!!)
C'est sans doute pour séparer les différentes adresses IP que les interfaces réseaux de la machine auraient pu avoir.
Sur ma machine, ça donne :
michel@micT450:~$ hostname -I
192.168.0.18 192.168.122.1 2a01:e0a:448:5860:280a:a4a2:68d7:b4ad 2a01:e0a:448:5860:6af7:28ff:fed8:73b1
michel@micT450:~$
Du coup j'ai modifié mon script afin qu'il ne prenne en compte que la première adresse IP
en utilisant une liste (array) comme conseillé par
Watael dans
son message #15